@@ -108,10 +108,6 @@ static int nfs41_test_stateid(struct nfs_server *, nfs4_stateid *,
108108static int nfs41_free_stateid (struct nfs_server * , const nfs4_stateid * ,
109109 const struct cred * , bool );
110110#endif
111- static void nfs4_bitmask_set (__u32 bitmask [NFS4_BITMASK_SZ ],
112- const __u32 * src , struct inode * inode ,
113- struct nfs_server * server ,
114- struct nfs4_label * label );
115111
116112#ifdef CONFIG_NFS_V4_SECURITY_LABEL
117113static inline struct nfs4_label *
@@ -3669,7 +3665,7 @@ static void nfs4_close_prepare(struct rpc_task *task, void *data)
36693665 if (!nfs4_have_delegation (inode , FMODE_READ )) {
36703666 nfs4_bitmask_set (calldata -> arg .bitmask_store ,
36713667 server -> cache_consistency_bitmask ,
3672- inode , server , NULL );
3668+ inode , 0 );
36733669 calldata -> arg .bitmask = calldata -> arg .bitmask_store ;
36743670 } else
36753671 calldata -> arg .bitmask = NULL ;
@@ -5432,14 +5428,14 @@ bool nfs4_write_need_cache_consistency_data(struct nfs_pgio_header *hdr)
54325428 return nfs4_have_delegation (hdr -> inode , FMODE_READ ) == 0 ;
54335429}
54345430
5435- static void nfs4_bitmask_set (__u32 bitmask [NFS4_BITMASK_SZ ], const __u32 * src ,
5436- struct inode * inode , struct nfs_server * server ,
5437- struct nfs4_label * label )
5431+ void nfs4_bitmask_set (__u32 bitmask [], const __u32 src [],
5432+ struct inode * inode , unsigned long cache_validity )
54385433{
5439- unsigned long cache_validity = READ_ONCE ( NFS_I ( inode ) -> cache_validity );
5434+ struct nfs_server * server = NFS_SERVER ( inode );
54405435 unsigned int i ;
54415436
54425437 memcpy (bitmask , src , sizeof (* bitmask ) * NFS4_BITMASK_SZ );
5438+ cache_validity |= READ_ONCE (NFS_I (inode )-> cache_validity );
54435439
54445440 if (cache_validity & NFS_INO_INVALID_CHANGE )
54455441 bitmask [0 ] |= FATTR4_WORD0_CHANGE ;
@@ -5451,8 +5447,6 @@ static void nfs4_bitmask_set(__u32 bitmask[NFS4_BITMASK_SZ], const __u32 *src,
54515447 bitmask [1 ] |= FATTR4_WORD1_OWNER | FATTR4_WORD1_OWNER_GROUP ;
54525448 if (cache_validity & NFS_INO_INVALID_NLINK )
54535449 bitmask [1 ] |= FATTR4_WORD1_NUMLINKS ;
5454- if (label && label -> len && cache_validity & NFS_INO_INVALID_LABEL )
5455- bitmask [2 ] |= FATTR4_WORD2_SECURITY_LABEL ;
54565450 if (cache_validity & NFS_INO_INVALID_CTIME )
54575451 bitmask [1 ] |= FATTR4_WORD1_TIME_METADATA ;
54585452 if (cache_validity & NFS_INO_INVALID_MTIME )
@@ -5479,7 +5473,7 @@ static void nfs4_proc_write_setup(struct nfs_pgio_header *hdr,
54795473 } else {
54805474 nfs4_bitmask_set (hdr -> args .bitmask_store ,
54815475 server -> cache_consistency_bitmask ,
5482- hdr -> inode , server , NULL );
5476+ hdr -> inode , NFS_INO_INVALID_BLOCKS );
54835477 hdr -> args .bitmask = hdr -> args .bitmask_store ;
54845478 }
54855479
@@ -6517,8 +6511,7 @@ static int _nfs4_proc_delegreturn(struct inode *inode, const struct cred *cred,
65176511 data -> args .fhandle = & data -> fh ;
65186512 data -> args .stateid = & data -> stateid ;
65196513 nfs4_bitmask_set (data -> args .bitmask_store ,
6520- server -> cache_consistency_bitmask , inode , server ,
6521- NULL );
6514+ server -> cache_consistency_bitmask , inode , 0 );
65226515 data -> args .bitmask = data -> args .bitmask_store ;
65236516 nfs_copy_fh (& data -> fh , NFS_FH (inode ));
65246517 nfs4_stateid_copy (& data -> stateid , stateid );
0 commit comments