Skip to content

Commit

Permalink
Disable parallel processing for 'zfs mount -l'
Browse files Browse the repository at this point in the history
Currently, 'zfs mount -a' will always attempt to parallelize
work related to mounting as best it can. Unfortunately, when
the user passes the '-l' option to load keys, this causes
all threads to prompt the user for their keys at once,
resulting in a confusing and racy user experience. This patch
simply disables parallel mounting when using the '-l' flag.

Reviewed by: Sebastien Roy <sebastien.roy@delphix.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #8762 
Closes #8811
  • Loading branch information
Tom Caputi authored and behlendorf committed May 25, 2019
1 parent bfd5a70 commit 8e3c3ed
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions cmd/zfs/zfs_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -6622,10 +6622,13 @@ share_mount(int op, int argc, char **argv)

/*
* libshare isn't mt-safe, so only do the operation in parallel
* if we're mounting.
* if we're mounting. Additionally, the key-loading option must
* be serialized so that we can prompt the user for their keys
* in a consistent manner.
*/
zfs_foreach_mountpoint(g_zfs, cb.cb_handles, cb.cb_used,
share_mount_one_cb, &share_mount_state, op == OP_MOUNT);
share_mount_one_cb, &share_mount_state,
op == OP_MOUNT && !(flags & MS_CRYPT));
ret = share_mount_state.sm_status;

for (int i = 0; i < cb.cb_used; i++)
Expand Down

0 comments on commit 8e3c3ed

Please sign in to comment.