]> Pileus Git - ~andy/linux/blobdiff - fs/nfs/delegation.c
Merge branch 'queue' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target...
[~andy/linux] / fs / nfs / delegation.c
index 60e2e6e3e323ad0d592ec70f28872ee790c3872c..57db3244f4d967dd5479dbf3ab883c6d28cc2cbd 100644 (file)
@@ -70,11 +70,9 @@ static int nfs_delegation_claim_locks(struct nfs_open_context *ctx, struct nfs4_
        struct file_lock *fl;
        int status = 0;
 
-       if (inode->i_flock == NULL)
-               return 0;
-
        if (inode->i_flock == NULL)
                goto out;
+
        /* Protect inode->i_flock using the file locks lock */
        lock_flocks();
        for (fl = inode->i_flock; fl != NULL; fl = fl->fl_next) {
@@ -564,7 +562,7 @@ void nfs_server_return_all_delegations(struct nfs_server *server)
        }
 }
 
-static void nfs_mark_return_all_delegation_types(struct nfs_server *server,
+static void nfs_mark_return_unused_delegation_types(struct nfs_server *server,
                                                 fmode_t flags)
 {
        struct nfs_delegation *delegation;
@@ -573,18 +571,18 @@ static void nfs_mark_return_all_delegation_types(struct nfs_server *server,
                if ((delegation->type == (FMODE_READ|FMODE_WRITE)) && !(flags & FMODE_WRITE))
                        continue;
                if (delegation->type & flags)
-                       nfs_mark_return_delegation(server, delegation);
+                       nfs_mark_return_if_closed_delegation(server, delegation);
        }
 }
 
-static void nfs_client_mark_return_all_delegation_types(struct nfs_client *clp,
+static void nfs_client_mark_return_unused_delegation_types(struct nfs_client *clp,
                                                        fmode_t flags)
 {
        struct nfs_server *server;
 
        rcu_read_lock();
        list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link)
-               nfs_mark_return_all_delegation_types(server, flags);
+               nfs_mark_return_unused_delegation_types(server, flags);
        rcu_read_unlock();
 }
 
@@ -601,14 +599,14 @@ void nfs_remove_bad_delegation(struct inode *inode)
 EXPORT_SYMBOL_GPL(nfs_remove_bad_delegation);
 
 /**
- * nfs_expire_all_delegation_types
+ * nfs_expire_unused_delegation_types
  * @clp: client to process
  * @flags: delegation types to expire
  *
  */
-void nfs_expire_all_delegation_types(struct nfs_client *clp, fmode_t flags)
+void nfs_expire_unused_delegation_types(struct nfs_client *clp, fmode_t flags)
 {
-       nfs_client_mark_return_all_delegation_types(clp, flags);
+       nfs_client_mark_return_unused_delegation_types(clp, flags);
        nfs_delegation_run_state_manager(clp);
 }