Re: [PATCH] f2fs: move f2fs_balance_fs from truncate to punch_hole

From: Namjae Jeon
Date: Tue Apr 09 2013 - 02:46:08 EST


2013/4/9, Jason Hrycay <jhrycay@xxxxxxxxx>:
> From: Jason Hrycay <jason.hrycay@xxxxxxxxxxxx>
>
> Move the f2fs_balance_fs out of the truncate_hole function and only
> perform that in punch_hole use case. The commit:
>
> ed60b1644e7f7e5dd67d21caf7e4425dff05dad0
>
> intended to do this but moved it into truncate_hole to cover more
> cases. However, a deadlock scenario is possible when deleting an inode
> entry under specific conditions:
>
> f2fs_delete_entry()
> mutex_lock_op(sbi, DENTRY_OPS);
> truncate_hole()
> f2fs_balance_fs()
> mutex_lock(&sbi->gc_mutex);
> f2fs_gc()
> write_checkpoint()
> block_operations()
> mutex_lock_op(sbi, DENTRY_OPS);
>
> Lets move it into the punch_hole case to cover the original intent of
> avoiding it during fallocate's expand_inode_data case.
>
> Change-Id: I29f8ea1056b0b88b70ba8652d901b6e8431bb27e
> Signed-off-by: Jason Hrycay <jason.hrycay@xxxxxxxxxxxx>
Hi,
With the latest commit 9995bf953a83749abd9fa22f72ab2b0be341025a
About introducing the global locking method in âf2fsâ,
I think we no longer will have a case of deadlock happening in this path.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/