ocfs2: Fail ocfs2_get_block() immediately when a block needs allocation
authorWengang Wang <wen.gang.wang@oracle.com>
Mon, 13 Jul 2009 03:38:58 +0000 (11:38 +0800)
committerJoel Becker <joel.becker@oracle.com>
Tue, 21 Jul 2009 00:36:07 +0000 (17:36 -0700)
ocfs2_get_block() does no allocation.  Hole filling for writes should
have happened farther up in the call chain.  We detect this case and
print an error, but we then continue with the function.  We should be
exiting immediately.

Signed-off-by: Wengang Wang <wen.gang.wang@oracle.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
fs/ocfs2/aops.c

index 25aced3b0c7d11006f1c4d396e9bc2b8e4ffa72d..e511df10145181a03e4e95352b56bb444d9a9ab2 100644 (file)
@@ -193,6 +193,7 @@ static int ocfs2_get_block(struct inode *inode, sector_t iblock,
                             (unsigned long long)OCFS2_I(inode)->ip_blkno);
                        mlog(ML_ERROR, "Size %llu, clusters %u\n", (unsigned long long)i_size_read(inode), OCFS2_I(inode)->ip_clusters);
                        dump_stack();
+                       goto bail;
                }
 
                past_eof = ocfs2_blocks_for_bytes(inode->i_sb, i_size_read(inode));