Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'hotfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6

* 'hotfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
NFS: Fix dentry revalidation for NFSv4 referrals and mountpoint crossings
NFS: Fix the fsid revalidation in nfs_update_inode()
SUNRPC: Fix a nfs4 over rdma transport oops
NFS: Fix an f_mode/f_flags confusion in fs/nfs/write.c

+13 -4
+2
fs/nfs/dir.c
··· 710 710 { 711 711 struct nfs_server *server = NFS_SERVER(inode); 712 712 713 + if (test_bit(NFS_INO_MOUNTPOINT, &NFS_I(inode)->flags)) 714 + return 0; 713 715 if (nd != NULL) { 714 716 /* VFS wants an on-the-wire revalidation */ 715 717 if (nd->flags & LOOKUP_REVAL)
+4 -2
fs/nfs/inode.c
··· 299 299 else 300 300 inode->i_op = &nfs_mountpoint_inode_operations; 301 301 inode->i_fop = NULL; 302 + set_bit(NFS_INO_MOUNTPOINT, &nfsi->flags); 302 303 } 303 304 } else if (S_ISLNK(inode->i_mode)) 304 305 inode->i_op = &nfs_symlink_inode_operations; ··· 1004 1003 1005 1004 server = NFS_SERVER(inode); 1006 1005 /* Update the fsid? */ 1007 - if (S_ISDIR(inode->i_mode) 1008 - && !nfs_fsid_equal(&server->fsid, &fattr->fsid)) 1006 + if (S_ISDIR(inode->i_mode) && 1007 + !nfs_fsid_equal(&server->fsid, &fattr->fsid) && 1008 + !test_bit(NFS_INO_MOUNTPOINT, &nfsi->flags)) 1009 1009 server->fsid = fattr->fsid; 1010 1010 1011 1011 /*
+1 -1
fs/nfs/write.c
··· 734 734 */ 735 735 if (nfs_write_pageuptodate(page, inode) && 736 736 inode->i_flock == NULL && 737 - !(file->f_mode & O_SYNC)) { 737 + !(file->f_flags & O_SYNC)) { 738 738 count = max(count + offset, nfs_page_length(page)); 739 739 offset = 0; 740 740 }
+1
include/linux/nfs_fs.h
··· 195 195 #define NFS_INO_ADVISE_RDPLUS (1) /* advise readdirplus */ 196 196 #define NFS_INO_STALE (2) /* possible stale inode */ 197 197 #define NFS_INO_ACL_LRU_SET (3) /* Inode is on the LRU list */ 198 + #define NFS_INO_MOUNTPOINT (4) /* inode is remote mountpoint */ 198 199 199 200 static inline struct nfs_inode *NFS_I(const struct inode *inode) 200 201 {
+5 -1
net/sunrpc/xprtrdma/transport.c
··· 614 614 return; 615 615 616 616 req = container_of(buffer, struct rpcrdma_req, rl_xdr_buf[0]); 617 - r_xprt = container_of(req->rl_buffer, struct rpcrdma_xprt, rx_buf); 617 + if (req->rl_iov.length == 0) { /* see allocate above */ 618 + r_xprt = container_of(((struct rpcrdma_req *) req->rl_buffer)->rl_buffer, 619 + struct rpcrdma_xprt, rx_buf); 620 + } else 621 + r_xprt = container_of(req->rl_buffer, struct rpcrdma_xprt, rx_buf); 618 622 rep = req->rl_reply; 619 623 620 624 dprintk("RPC: %s: called on 0x%p%s\n",