Whamcloud - gitweb
LU-4474 osd: Add nodelalloc to ldiskfs mount options 81/21181/6
authorArtem Blagodarenko <artem.blagodarenko@seagate.com>
Thu, 7 Jul 2016 11:27:11 +0000 (14:27 +0300)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 29 Sep 2016 14:59:28 +0000 (14:59 +0000)
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 <artem.blagodarenko@seagate.com>
Seagate-bug-id: MRP-3225
Change-Id: Ib68d1c424f4a99eb7df5c373e9775aeafe8505b4
Reviewed-on: http://review.whamcloud.com/21181
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: Faccini Bruno <bruno.faccini@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/osd-ldiskfs/osd_handler.c

index 54239b4..c9cbcba 100644 (file)
@@ -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) {