2008-01-05 14:27:40 +00:00
|
|
|
diff -up nfs-utils-1.1.1/support/nfs/xio.c.save nfs-utils-1.1.1/support/nfs/xio.c
|
|
|
|
--- nfs-utils-1.1.1/support/nfs/xio.c.save 2007-10-18 23:07:28.000000000 -0400
|
|
|
|
+++ nfs-utils-1.1.1/support/nfs/xio.c 2008-01-05 08:27:35.000000000 -0500
|
|
|
|
@@ -54,13 +54,19 @@ xflock(char *fname, char *type)
|
2007-08-16 02:44:53 +00:00
|
|
|
{
|
|
|
|
struct sigaction sa, oldsa;
|
|
|
|
int readonly = !strcmp(type, "r");
|
|
|
|
+ mode_t mode = (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
|
|
|
|
struct flock fl = { readonly? F_RDLCK : F_WRLCK, SEEK_SET, 0, 0, 0 };
|
|
|
|
int fd;
|
|
|
|
|
2008-01-05 14:27:40 +00:00
|
|
|
- if ((fd = open(fname, readonly? O_RDONLY : (O_RDWR|O_CREAT), 0644)) < 0) {
|
|
|
|
+ if (readonly)
|
2007-08-16 02:44:53 +00:00
|
|
|
+ fd = open(fname, O_RDONLY);
|
|
|
|
+ else
|
|
|
|
+ fd = open(fname, (O_RDWR|O_CREAT), mode);
|
|
|
|
+ if (fd < 0) {
|
2008-01-05 14:27:40 +00:00
|
|
|
xlog(L_WARNING, "could not open %s for locking", fname);
|
2007-08-16 02:44:53 +00:00
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
+
|
|
|
|
sa.sa_handler = doalarm;
|
|
|
|
sa.sa_flags = 0;
|
|
|
|
sigemptyset(&sa.sa_mask);
|