From 89dde6fbabf6590ad7ccccc1f20f371f27da2207 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 5 Jan 2012 13:32:26 -0500 Subject: [PATCH] mount.nfs: don't overwrite mount options from /etc/nfsmount.conf The libmount (as well as mount(8)) ignores mount options from command line if running in restricted mode (suid, non-root-user) and all options are read from fstab only. It means that all options are replaced with stuff from fstab, including mount options from nfsmount.conf. This is bug. We have to apply fstab and then nfsmount.conf. Signed-off-by: Karel Zak Signed-off-by: Steve Dickson --- utils/mount/mount_libmount.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/utils/mount/mount_libmount.c b/utils/mount/mount_libmount.c index e450d79..e8f17a9 100644 --- a/utils/mount/mount_libmount.c +++ b/utils/mount/mount_libmount.c @@ -346,6 +346,21 @@ static int mount_main(struct libmnt_context *cxt, int argc, char **argv) if (chk_mountpoint(mount_point)) goto err; + + /* + * The libmount strictly uses only options from fstab if running in + * restricted mode (suid, non-root user). This is done in + * mnt_context_prepare_mount() by default. + * + * We have to read fstab before nfsmount.conf, otherwise the options + * from nfsmount.conf will be ignored (overwrited). + */ + rc = mnt_context_apply_fstab(cxt); + if (rc) { + nfs_error(_("%s: failed to apply fstab options\n"), progname); + goto err; + } + /* * Concatenate mount options from the configuration file */ -- 2.39.2