diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c index 8e6f3cadd5908907b5c5ac465b32e292f7610744..93881b0786abaa86e43ad98a337443ac2bf84dae 100644 --- a/fs/ext2/inode.c +++ b/fs/ext2/inode.c @@ -699,10 +699,13 @@ static int ext2_get_blocks(struct inode *inode, if (!partial) { count++; mutex_unlock(&ei->truncate_mutex); - if (err) - goto cleanup; goto got_it; } + + if (err) { + mutex_unlock(&ei->truncate_mutex); + goto cleanup; + } } /*