xfs: prevent lockdep false positive in xfs_iget_cache_miss
[safe/jmp/linux-2.6] / fs / smbfs / sock.c
index 6815b1b..e37fe4d 100644 (file)
@@ -17,7 +17,6 @@
 #include <linux/net.h>
 #include <linux/mm.h>
 #include <linux/netdevice.h>
-#include <linux/smp_lock.h>
 #include <linux/workqueue.h>
 #include <net/scm.h>
 #include <net/tcp_states.h>
@@ -82,10 +81,10 @@ server_sock(struct smb_sb_info *server)
        if (server && (file = server->sock_file))
        {
 #ifdef SMBFS_PARANOIA
-               if (!smb_valid_socket(file->f_dentry->d_inode))
+               if (!smb_valid_socket(file->f_path.dentry->d_inode))
                        PARANOIA("bad socket!\n");
 #endif
-               return SOCKET_I(file->f_dentry->d_inode);
+               return SOCKET_I(file->f_path.dentry->d_inode);
        }
        return NULL;
 }
@@ -330,9 +329,8 @@ smb_receive(struct smb_sb_info *server, struct smb_request *req)
        msg.msg_control = NULL;
 
        /* Dont repeat bytes and count available bufferspace */
-       rlen = smb_move_iov(&p, &num, iov, req->rq_bytes_recvd);
-       if (req->rq_rlen < rlen)
-               rlen = req->rq_rlen;
+       rlen = min_t(int, smb_move_iov(&p, &num, iov, req->rq_bytes_recvd),
+                       (req->rq_rlen - req->rq_bytes_recvd));
 
        result = kernel_recvmsg(sock, &msg, p, num, rlen, flags);