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 25aced3..e511df1 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));