NFS: Simplify internal check for whether file is open for write
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Sun, 2 Sep 2018 19:34:37 +0000 (15:34 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Sun, 30 Sep 2018 19:35:17 +0000 (15:35 -0400)
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/inode.c

index 09b3b7146ff4a4e5d345b1bdbaf8ca95b8f34a3b..052db41a7f80c95def69d7bbb248f7236c30ca13 100644 (file)
@@ -1328,19 +1328,11 @@ static bool nfs_file_has_writers(struct nfs_inode *nfsi)
 {
        struct inode *inode = &nfsi->vfs_inode;
 
-       assert_spin_locked(&inode->i_lock);
-
        if (!S_ISREG(inode->i_mode))
                return false;
        if (list_empty(&nfsi->open_files))
                return false;
-       /* Note: This relies on nfsi->open_files being ordered with writers
-        *       being placed at the head of the list.
-        *       See nfs_inode_attach_open_context()
-        */
-       return (list_first_entry(&nfsi->open_files,
-                       struct nfs_open_context,
-                       list)->mode & FMODE_WRITE) == FMODE_WRITE;
+       return inode_is_open_for_write(inode);
 }
 
 static bool nfs_file_has_buffered_writers(struct nfs_inode *nfsi)