Hello community, here is the log from the commit of package nfs-utils checked in at Wed Jun 14 13:24:39 CEST 2006. -------- --- nfs-utils/nfs-utils.changes 2006-06-02 12:40:01.000000000 +0200 +++ nfs-utils/nfs-utils.changes 2006-06-12 15:27:13.000000000 +0200 @@ -1,0 +2,5 @@ +Mon Jun 12 15:26:54 CEST 2006 - ro@suse.de + +- added support for type 3 filehandles to mountd (#182552) + +------------------------------------------------------------------- New: ---- nfs-utils-1.0.7-mount_type3.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nfs-utils.spec ++++++ --- /var/tmp/diff_new_pack.genDFB/_old 2006-06-14 13:24:17.000000000 +0200 +++ /var/tmp/diff_new_pack.genDFB/_new 2006-06-14 13:24:17.000000000 +0200 @@ -15,7 +15,7 @@ URL: http://nfs.sourceforge.net Summary: Support Utilities for Kernel nfsd Version: 1.0.7 -Release: 36 +Release: 37 Group: Productivity/Networking/NFS Obsoletes: knfsd linuxnfs nfsutils Provides: knfsd linuxnfs nfsutils @@ -50,6 +50,7 @@ Patch15: nfs-utils-1.0.6-pie.patch Patch16: nfs-utils-1.0.7-strip.patch Patch17: nfs-utils-64bigendian.patch +Patch18: nfs-utils-1.0.7-mount_type3.patch %description This package contains the NFS utilities. You can tune the number of @@ -82,6 +83,7 @@ %patch15 -p1 %patch16 %patch17 -p1 +%patch18 %build %{?suse_update_config:%{suse_update_config -f }} @@ -206,6 +208,8 @@ %{_mandir}/man8/rpc.svcgssd.8.gz %changelog -n nfs-utils +* Mon Jun 12 2006 - ro@suse.de +- added support for type 3 filehandles to mountd (#182552) * Fri Jun 02 2006 - ro@suse.de - disable v4 support in rcnfsserver if NFS4_SUPPORT is not set to "yes" (#178633) ++++++ nfs-utils-1.0.7-mount_type3.patch ++++++ --- utils/mountd/cache.c +++ utils/mountd/cache.c @@ -119,7 +119,7 @@ goto out; if (qword_get_int(&cp, &fsidtype) != 0) goto out; - if (fsidtype < 0 || fsidtype > 1) + if (fsidtype < 0 || fsidtype > 3) goto out; /* unknown type */ if ((fsidlen = qword_get(&cp, fsid, 32)) <= 0) goto out; @@ -138,6 +138,30 @@ goto out; memcpy(&fsidnum, fsid, 4); break; + + case 2: /* 12 bytes: 4 major, 4 minor, 4 inode + * This format is never actually used but was + * an historical accident + */ + if (fsidlen != 12) + goto out; + memcpy(&dev, fsid, 4); major = ntohl(dev); + memcpy(&dev, fsid+4, 4); minor = ntohl(dev); + memcpy(&inode, fsid+8, 4); + break; + + case 3: /* 8 bytes: 4 byte packed device number, 4 inode */ + /* This is *host* endian, not net-byte-order, because + * no-one outside this host has any business interpreting it + */ + if (fsidlen != 8) + goto out; + memcpy(&dev, fsid, 4); + memcpy(&inode, fsid+4, 4); + major = (dev & 0xfff00) >> 8; + minor = (dev & 0xff) | ((dev >> 12) & 0xfff00); + break; + } auth_reload(); @@ -145,21 +169,23 @@ /* Now determine export point for this fsid/domain */ for (i=0 ; i < MCL_MAXTYPES; i++) { for (exp = exportlist[i]; exp; exp = exp->m_next) { + struct stat stb; + if (!client_member(dom, exp->m_client->m_hostname)) continue; + if (exp->m_export.e_mountpoint && + !is_mountpoint(exp->m_export.e_mountpoint[0]? + exp->m_export.e_mountpoint: + exp->m_export.e_path)) { + dev_missing ++; + } + if (stat(exp->m_export.e_path, &stb) != 0) + continue; if (fsidtype == 1 && ((exp->m_export.e_flags & NFSEXP_FSID) == 0 || exp->m_export.e_fsid != fsidnum)) continue; - if (fsidtype == 0) { - struct stat stb; - if (exp->m_export.e_mountpoint && - !is_mountpoint(exp->m_export.e_mountpoint[0]? - exp->m_export.e_mountpoint: - exp->m_export.e_path)) - dev_missing ++; - if (stat(exp->m_export.e_path, &stb) != 0) - continue; + if (fsidtype != 1) { if (stb.st_ino != inode) continue; if (major != major(stb.st_dev) || ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit-help@opensuse.org