f2fs: invalidate the node page if allocation is failed
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Thu, 20 Dec 2012 06:10:06 +0000 (15:10 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Fri, 28 Dec 2012 02:24:09 +0000 (11:24 +0900)
commit71e9fec548a95b2a4cf378646addd5d3098684a2
tree129aef9aacfb87ec29d67a8ca95422a82ab9db12
parent690e4a3ead5f88fc95f7650816d1376aa2e79db5
f2fs: invalidate the node page if allocation is failed

The new_node_page() is processed as the following procedure.

1. A new node page is allocated.
2. Set PageUptodate with proper footer information.
3. Check if there is a free space for allocation
 4.a. If there is no space, f2fs returns with -ENOSPC.
 4.b. Otherwise, go next.

In the case of step #4.a, f2fs remains a wrong node page in the page cache
with the uptodate flag.

Also, even though a new node page is allocated successfully, an error can be
occurred afterwards due to allocation failure of the other data structures.
In such a case, remove_inode_page() would be triggered, so that we have to
clear uptodate flag in truncate_node() too.

So, we should remove the uptodate flag, if allocation is failed.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
fs/f2fs/node.c