]> git.baikalelectronics.ru Git - kernel.git/commitdiff
orangefs: do not wait for timeout if umounting
authorMartin Brandenburg <martin@omnibond.com>
Tue, 25 Apr 2017 19:38:07 +0000 (15:38 -0400)
committerMike Marshall <hubcap@omnibond.com>
Wed, 26 Apr 2017 18:33:01 +0000 (14:33 -0400)
When the computer is turned off, all the processes are killed and then
all the filesystems are umounted.  OrangeFS should not wait for the
userspace daemon to come back in that case.

This only works for plain umount(2).  To actually take advantage of this
interactively, `umount -f' is needed; otherwise umount will issue a
statfs first, which will wait for the userspace daemon to come back.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
fs/orangefs/waitqueue.c

index abcfa3fa9992957006461c202c54380018a17787..61e2ca7fec553d3a694cf80d5e7083da98853015 100644 (file)
@@ -124,7 +124,14 @@ retry_servicing:
                gossip_debug(GOSSIP_WAIT_DEBUG,
                             "%s:client core is NOT in service.\n",
                             __func__);
-               timeout = op_timeout_secs * HZ;
+               /*
+                * Don't wait for the userspace component to return if
+                * the filesystem is being umounted anyway.
+                */
+               if (op->upcall.type == ORANGEFS_VFS_OP_FS_UMOUNT)
+                       timeout = 0;
+               else
+                       timeout = op_timeout_secs * HZ;
        }
        spin_unlock(&orangefs_request_list_lock);