diff options
author | Theodore Ts'o <tytso@mit.edu> | 2009-01-20 09:50:19 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2009-01-20 09:50:19 -0500 |
commit | e7f07968c16bdd9480001c0a9de013ba56889cf9 (patch) | |
tree | 89aaa3c147d8f6abd10711a030aa0a57b630176d | |
parent | 08ec8c3878cea0bf91f2ba3c0badf44b383752d0 (diff) |
ext4: Fix ext4_free_blocks() w/o a journal when files have indirect blocks
When trying to unlink a file with indirect blocks on a filesystem
without a journal, the "circular indirect block" sanity test was
getting falsely triggered.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r-- | fs/ext4/inode.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 49484ba801c9..b4386dafeb0c 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -3622,7 +3622,7 @@ static void ext4_free_data(handle_t *handle, struct inode *inode, | |||
3622 | * block pointed to itself, it would have been detached when | 3622 | * block pointed to itself, it would have been detached when |
3623 | * the block was cleared. Check for this instead of OOPSing. | 3623 | * the block was cleared. Check for this instead of OOPSing. |
3624 | */ | 3624 | */ |
3625 | if (bh2jh(this_bh)) | 3625 | if ((EXT4_JOURNAL(inode) == NULL) || bh2jh(this_bh)) |
3626 | ext4_handle_dirty_metadata(handle, inode, this_bh); | 3626 | ext4_handle_dirty_metadata(handle, inode, this_bh); |
3627 | else | 3627 | else |
3628 | ext4_error(inode->i_sb, __func__, | 3628 | ext4_error(inode->i_sb, __func__, |