浏览代码

JFFS2: Return early when file read not necessary

If a destination is not provided, jffs2_1pass_read_inode() only
returns the length of the file. In this case, avoid reading all
the data nodes, and return as soon as the length of the file is
known.

Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Mark Tomlinson 10 年之前
父节点
当前提交
3799b3f4ad
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      fs/jffs2/jffs2_1pass.c

+ 6 - 0
fs/jffs2/jffs2_1pass.c

@@ -719,6 +719,12 @@ jffs2_1pass_read_inode(struct b_lists *pL, u32 inode, char *dest)
 		}
 		put_fl_mem(jNode, pL->readbuf);
 	}
+	/*
+	 * If no destination is provided, we are done.
+	 * Just return the total size.
+	 */
+	if (!dest)
+		return totalSize;
 #endif
 
 	for (b = pL->frag.listHead; b != NULL; b = b->next) {