diff options
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.patch | 26 |
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 | } | ||
