summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/unfs-server/unfs-server-2.2beta47/015-setattr.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/unfs-server/unfs-server-2.2beta47/015-setattr.patch')
-rw-r--r--meta/recipes-devtools/unfs-server/unfs-server-2.2beta47/015-setattr.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/meta/recipes-devtools/unfs-server/unfs-server-2.2beta47/015-setattr.patch b/meta/recipes-devtools/unfs-server/unfs-server-2.2beta47/015-setattr.patch
new file mode 100644
index 0000000000..cbfb8e8214
--- /dev/null
+++ b/meta/recipes-devtools/unfs-server/unfs-server-2.2beta47/015-setattr.patch
@@ -0,0 +1,26 @@
1# Patch origin: nfs-server source RPM from openSUSE 10.3
2
3--- nfs-server/setattr.c.orig 2006-07-28 16:38:26.000000000 +0200
4+++ nfs-server/setattr.c 2006-07-28 16:42:28.000000000 +0200
5@@ -97,7 +97,20 @@
6 tvp[1].tv_sec = s->st_mtime;
7 tvp[1].tv_usec = 0;
8 }
9- if (efs_utimes(path, tvp) < 0)
10+ if (m_secs != IGNORE_TIME && attr->mtime.useconds == 1000000) {
11+ /*
12+ * from kernel/fs/nfsd/nfsxdr.c:
13+ * Passing the invalid value useconds=1000000 for mtime
14+ * is a Sun convention for "set both mtime and atime to
15+ * current server time". It's needed to make permissions
16+ * checks for the "touch" program across v2 mounts to
17+ * Solaris and Irix boxes work correctly. See description of
18+ * sattr in section 6.1 of "NFS Illustrated" by
19+ * Brent Callaghan, Addison-Wesley, ISBN 0-201-32750-5
20+ */
21+ if (utime(path, (struct utimbuf *)0) < 0)
22+ goto failure;
23+ } else if (efs_utimes(path, tvp) < 0)
24 goto failure;
25 }
26 }