Jon, The transition to kernel 2.6.30-rc8 evidently caused this patch to break in 2 places (files dir.c and super.c). I've indicated the problem below (conflict between patch and base code). Please fix and resend.
Thanks! -Jack On Wednesday 03 June 2009 02:41, Jon Mason wrote: > This patch provides the NFS backport for 2.6.22. Since the RDMA > infrastructure does not work for this kernel release, only TCP > support has been tested. It passes Connectathon as a client and server. > > Signed-Off-By: Jon Mason <[email protected]> > --- > .... > +diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c > +index 370b190..55877c8 100644 > +--- a/fs/nfs/dir.c > ++++ b/fs/nfs/dir.c ... > +@@ -1943,7 +1943,8 @@ int nfs_permission(struct inode *inode, int mask) > + case S_IFREG: > + /* NFSv4 has atomic_open... */ > + if (nfs_server_capable(inode, NFS_CAP_ATOMIC_OPEN) > +- && (mask & MAY_OPEN)) > ++ && nd != NULL > ++ && (nd->flags & LOOKUP_OPEN)) > + goto out; > + break; > + case S_IFDIR: file dir.c, reads at the above point: case S_IFREG: /* NFSv4 has atomic_open... */ if (nfs_server_capable(inode, NFS_CAP_ATOMIC_OPEN) ***====> && (mask & MAY_OPEN) ***====> && !(mask & MAY_EXEC)) goto out; break; case S_IFDIR: > +diff --git a/fs/nfs/super.c b/fs/nfs/super.c > +index 6717200..b8dd762 100644 > +--- a/fs/nfs/super.c > ++++ b/fs/nfs/super.c ... > +@@ -681,11 +679,14 @@ static int nfs_show_stats(struct seq_file *m, struct > vfsmount *mnt) > + * Begin unmount by attempting to remove all automounted mountpoints we > added > + * in response to xdev traversals and referrals > + */ > +-static void nfs_umount_begin(struct super_block *sb) > ++static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags) > + { > +- struct nfs_server *server = NFS_SB(sb); > ++ struct nfs_server *server = NFS_SB(vfsmnt->mnt_sb); > + struct rpc_clnt *rpc; > + > ++ if (!(flags & MNT_FORCE)) > ++ return; > ++ > + /* -EIO all pending I/O */ > + rpc = server->client_acl; > + if (!IS_ERR(rpc)) file super.c reads at this point: static void nfs_umount_begin(struct super_block *sb) { struct nfs_server *server; struct rpc_clnt *rpc; lock_kernel(); server = NFS_SB(sb); /* -EIO all pending I/O */ rpc = server->client_acl; if (!IS_ERR(rpc)) rpc_killall_tasks(rpc); rpc = server->client; if (!IS_ERR(rpc)) rpc_killall_tasks(rpc); unlock_kernel(); } Ple _______________________________________________ ewg mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
