| ripped from Debian |
| |
| --- nfs-utils-1.1.4/utils/mount/fstab.c |
| +++ nfs-utils-1.1.4/utils/mount/fstab.c |
| @@ -57,7 +57,7 @@ mtab_does_not_exist(void) { |
| return var_mtab_does_not_exist; |
| } |
| |
| -static int |
| +int |
| mtab_is_a_symlink(void) { |
| get_mtab_info(); |
| return var_mtab_is_a_symlink; |
| --- nfs-utils-1.1.4/utils/mount/fstab.h |
| +++ nfs-utils-1.1.4/utils/mount/fstab.h |
| @@ -7,6 +7,7 @@ |
| #define _PATH_FSTAB "/etc/fstab" |
| #endif |
| |
| +int mtab_is_a_symlink(void); |
| int mtab_is_writable(void); |
| int mtab_does_not_exist(void); |
| void reset_mtab_info(void); |
| --- nfs-utils-1.1.4/utils/mount/mount.c |
| +++ nfs-utils-1.1.4/utils/mount/mount.c |
| @@ -230,6 +230,13 @@ create_mtab (void) { |
| int flags; |
| mntFILE *mfp; |
| |
| + /* Avoid writing if the mtab is a symlink to /proc/mounts, since |
| + that would create a file /proc/mounts in case the proc filesystem |
| + is not mounted, and the fchmod below would also fail. */ |
| + if (mtab_is_a_symlink()) { |
| + return EX_SUCCESS; |
| + } |
| + |
| lock_mtab(); |
| |
| mfp = nfs_setmntent (MOUNTED, "a+"); |