From 7597c672850e7e9232f7400170455fd12aa08b8a Mon Sep 17 00:00:00 2001 From: Artem Blagodarenko Date: Thu, 7 Jul 2016 14:27:11 +0300 Subject: [PATCH] LU-4474 osd: Add nodelalloc to ldiskfs mount options If vfs_mount failed mount, process hangs during osd_mount cleanup. Mutex sb->s_umount cause of this hang. During cleanup ldiskfs_quota_off() is executed and if delalloc option is set, then sync_filesystem executed, but only after taking of s_umount mutex. We can't exlude this mutex here or move to another place, because there are some code pathes there ldiskfs_quota_off executed without s_umount mutex. This patch disable the delalloc option. Signed-off-by: Artem Blagodarenko Seagate-bug-id: MRP-3225 Change-Id: Ib68d1c424f4a99eb7df5c373e9775aeafe8505b4 Reviewed-on: http://review.whamcloud.com/21181 Tested-by: Maloo Reviewed-by: Niu Yawei Reviewed-by: Faccini Bruno Reviewed-by: Oleg Drokin --- lustre/osd-ldiskfs/osd_handler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/osd-ldiskfs/osd_handler.c b/lustre/osd-ldiskfs/osd_handler.c index 54239b4..c9cbcba 100644 --- a/lustre/osd-ldiskfs/osd_handler.c +++ b/lustre/osd-ldiskfs/osd_handler.c @@ -6766,7 +6766,7 @@ static int osd_mount(const struct lu_env *env, /* Glom up mount options */ if (*options != '\0') strcat(options, ","); - strlcat(options, "no_mbcache", PAGE_SIZE); + strlcat(options, "no_mbcache,nodelalloc", PAGE_SIZE); type = get_fs_type("ldiskfs"); if (!type) { -- 1.8.3.1