mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Add overlay(-O) mount option support
Linux supports mounting over non-empty directories by default. In Solaris this is not the case and -O option is required for zfs mount to mount a zfs filesystem over a non-empty directory. For compatibility, I've added support for -O option to mount zfs filesystems over non-empty directories if the user wants to, just like in Solaris. I've defined MS_OVERLAY to record it in the flags variable if the -O option is supplied. The flags variable passes through a few functions and its checked before performing the empty directory check in zfs_mount function. If -O is given, the check is not performed. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #473
This commit is contained in:
committed by
Brian Behlendorf
parent
96b91ef0d6
commit
e18be9a637
+4
-2
@@ -5469,7 +5469,7 @@ share_mount(int op, int argc, char **argv)
|
||||
int flags = 0;
|
||||
|
||||
/* check options */
|
||||
while ((c = getopt(argc, argv, op == OP_MOUNT ? ":avo:" : "a"))
|
||||
while ((c = getopt(argc, argv, op == OP_MOUNT ? ":avo:O" : "a"))
|
||||
!= -1) {
|
||||
switch (c) {
|
||||
case 'a':
|
||||
@@ -5491,7 +5491,9 @@ share_mount(int op, int argc, char **argv)
|
||||
/* option validation is done later */
|
||||
append_options(options, optarg);
|
||||
break;
|
||||
|
||||
case 'O':
|
||||
flags |= MS_OVERLAY;
|
||||
break;
|
||||
case ':':
|
||||
(void) fprintf(stderr, gettext("missing argument for "
|
||||
"'%c' option\n"), optopt);
|
||||
|
||||
Reference in New Issue
Block a user