|
@@ -1491,7 +1491,7 @@ int nfs_post_op_update_inode(struct inode *inode, struct nfs_fattr *fattr)
|
|
|
EXPORT_SYMBOL_GPL(nfs_post_op_update_inode);
|
|
|
|
|
|
/**
|
|
|
- * nfs_post_op_update_inode_force_wcc - try to update the inode attribute cache
|
|
|
+ * nfs_post_op_update_inode_force_wcc_locked - update the inode attribute cache
|
|
|
* @inode - pointer to inode
|
|
|
* @fattr - updated attributes
|
|
|
*
|
|
@@ -1501,11 +1501,10 @@ EXPORT_SYMBOL_GPL(nfs_post_op_update_inode);
|
|
|
*
|
|
|
* This function is mainly designed to be used by the ->write_done() functions.
|
|
|
*/
|
|
|
-int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fattr *fattr)
|
|
|
+int nfs_post_op_update_inode_force_wcc_locked(struct inode *inode, struct nfs_fattr *fattr)
|
|
|
{
|
|
|
int status;
|
|
|
|
|
|
- spin_lock(&inode->i_lock);
|
|
|
/* Don't do a WCC update if these attributes are already stale */
|
|
|
if ((fattr->valid & NFS_ATTR_FATTR) == 0 ||
|
|
|
!nfs_inode_attrs_need_update(inode, fattr)) {
|
|
@@ -1537,6 +1536,26 @@ int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fattr *fa
|
|
|
}
|
|
|
out_noforce:
|
|
|
status = nfs_post_op_update_inode_locked(inode, fattr);
|
|
|
+ return status;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * nfs_post_op_update_inode_force_wcc - try to update the inode attribute cache
|
|
|
+ * @inode - pointer to inode
|
|
|
+ * @fattr - updated attributes
|
|
|
+ *
|
|
|
+ * After an operation that has changed the inode metadata, mark the
|
|
|
+ * attribute cache as being invalid, then try to update it. Fake up
|
|
|
+ * weak cache consistency data, if none exist.
|
|
|
+ *
|
|
|
+ * This function is mainly designed to be used by the ->write_done() functions.
|
|
|
+ */
|
|
|
+int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fattr *fattr)
|
|
|
+{
|
|
|
+ int status;
|
|
|
+
|
|
|
+ spin_lock(&inode->i_lock);
|
|
|
+ status = nfs_post_op_update_inode_force_wcc_locked(inode, fattr);
|
|
|
spin_unlock(&inode->i_lock);
|
|
|
return status;
|
|
|
}
|