X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=utils%2Fmount%2Fmount.c;h=7d71e06f20d1b81baf803a4ea6ea275e20a807a1;hb=813ac37954352d3ca597cdcf895fc5aec22dec15;hp=ca87e3d1b7fb60bc04d7e3504a7bcb4985e79b38;hpb=940c7c304d4a43c00c27529cdddc7c87db6eef87;p=nfs-utils.git diff --git a/utils/mount/mount.c b/utils/mount/mount.c index ca87e3d..7d71e06 100644 --- a/utils/mount/mount.c +++ b/utils/mount/mount.c @@ -139,7 +139,6 @@ static char * fix_opts_string (int flags, const char *extra_opts) { int add_mtab(char *fsname, char *mount_point, char *fstype, int flags, char *opts, int freq, int passno) { struct mntent ment; - int fd; FILE *mtab; ment.mnt_fsname = fsname; @@ -149,11 +148,7 @@ int add_mtab(char *fsname, char *mount_point, char *fstype, int flags, char *opt ment.mnt_freq = 0; ment.mnt_passno= 0; - if ((fd = open(MOUNTED"~", O_RDWR|O_CREAT|O_EXCL, 0600)) == -1) { - fprintf(stderr, "Can't get "MOUNTED"~ lock file"); - return 1; - } - close(fd); + lock_mtab(); if ((mtab = setmntent(MOUNTED, "a+")) == NULL) { fprintf(stderr, "Can't open " MOUNTED); @@ -161,21 +156,22 @@ int add_mtab(char *fsname, char *mount_point, char *fstype, int flags, char *opt } if (addmntent(mtab, &ment) == 1) { + endmntent(mtab); + unlock_mtab(); fprintf(stderr, "Can't write mount entry"); return 1; } if (fchmod(fileno(mtab), 0644) == -1) { + endmntent(mtab); + unlock_mtab(); fprintf(stderr, "Can't set perms on " MOUNTED); return 1; } endmntent(mtab); - if (unlink(MOUNTED"~") == -1) { - fprintf(stderr, "Can't remove "MOUNTED"~"); - return 1; - } + unlock_mtab(); return 0; }