Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4e56e082dd89266d320ccfbc7bd0102186a765ac
Commit:     4e56e082dd89266d320ccfbc7bd0102186a765ac
Parent:     8a702bbb7ddaa2e78c17dbaaf48e3cd5943676f0
Author:     Trond Myklebust <[EMAIL PROTECTED]>
AuthorDate: Sun Jul 1 18:13:52 2007 -0400
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Tue Jul 10 23:40:38 2007 -0400

    NFSv4: Clean up _nfs4_proc_lookup() vs _nfs4_proc_lookupfh()
    
    They differ only slightly in the arguments they take. Why have they not
    been merged?
    
    Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]>
---
 fs/nfs/nfs4proc.c |   35 +++++++++--------------------------
 1 files changed, 9 insertions(+), 26 deletions(-)

diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index d90209e..84d0b7e 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1592,8 +1592,6 @@ static int _nfs4_proc_lookupfh(struct nfs_server *server, 
struct nfs_fh *dirfh,
        dprintk("NFS call  lookupfh %s\n", name->name);
        status = rpc_call_sync(server->client, &msg, 0);
        dprintk("NFS reply lookupfh: %d\n", status);
-       if (status == -NFS4ERR_MOVED)
-               status = -EREMOTE;
        return status;
 }
 
@@ -1604,10 +1602,13 @@ static int nfs4_proc_lookupfh(struct nfs_server 
*server, struct nfs_fh *dirfh,
        struct nfs4_exception exception = { };
        int err;
        do {
-               err = nfs4_handle_exception(server,
-                               _nfs4_proc_lookupfh(server, dirfh, name,
-                                                   fhandle, fattr),
-                               &exception);
+               err = _nfs4_proc_lookupfh(server, dirfh, name, fhandle, fattr);
+               /* FIXME: !!!! */
+               if (err == -NFS4ERR_MOVED) {
+                       err = -EREMOTE;
+                       break;
+               }
+               err = nfs4_handle_exception(server, err, &exception);
        } while (exception.retry);
        return err;
 }
@@ -1615,28 +1616,10 @@ static int nfs4_proc_lookupfh(struct nfs_server 
*server, struct nfs_fh *dirfh,
 static int _nfs4_proc_lookup(struct inode *dir, struct qstr *name,
                struct nfs_fh *fhandle, struct nfs_fattr *fattr)
 {
-       int                    status;
-       struct nfs_server *server = NFS_SERVER(dir);
-       struct nfs4_lookup_arg args = {
-               .bitmask = server->attr_bitmask,
-               .dir_fh = NFS_FH(dir),
-               .name = name,
-       };
-       struct nfs4_lookup_res res = {
-               .server = server,
-               .fattr = fattr,
-               .fh = fhandle,
-       };
-       struct rpc_message msg = {
-               .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_LOOKUP],
-               .rpc_argp = &args,
-               .rpc_resp = &res,
-       };
-       
-       nfs_fattr_init(fattr);
+       int status;
        
        dprintk("NFS call  lookup %s\n", name->name);
-       status = rpc_call_sync(NFS_CLIENT(dir), &msg, 0);
+       status = _nfs4_proc_lookupfh(NFS_SERVER(dir), NFS_FH(dir), name, 
fhandle, fattr);
        if (status == -NFS4ERR_MOVED)
                status = nfs4_get_referral(dir, name, fattr, fhandle);
        dprintk("NFS reply lookup: %d\n", status);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to