diff options
| author | Ingo Molnar <mingo@kernel.org> | 2022-09-21 09:58:02 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2022-09-21 09:58:02 +0200 | 
| commit | 74656d03ac36fabb16b9df5221cf398ee3a9ca08 (patch) | |
| tree | 0600e619ac817e2c016c148810814f55280316cc /include/linux/nfs_fs.h | |
| parent | 0d97db026509c1a13f732b22670ab1f0ac9d8d87 (diff) | |
| parent | 521a547ced6477c54b4b0cc206000406c221b4d6 (diff) | |
Merge tag 'v6.0-rc6' into locking/core, to refresh the branch
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/nfs_fs.h')
| -rw-r--r-- | include/linux/nfs_fs.h | 11 | 
1 files changed, 10 insertions, 1 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index a17c337dbdf1..7931fa472561 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h @@ -83,7 +83,6 @@ struct nfs_open_context {  	fmode_t mode;  	unsigned long flags; -#define NFS_CONTEXT_RESEND_WRITES	(1)  #define NFS_CONTEXT_BAD			(2)  #define NFS_CONTEXT_UNLOCK	(3)  #define NFS_CONTEXT_FILE_OPEN		(4) @@ -182,6 +181,7 @@ struct nfs_inode {  		/* Regular file */  		struct {  			atomic_long_t	nrequests; +			atomic_long_t	redirtied_pages;  			struct nfs_mds_commit_info commit_info;  			struct mutex	commit_mutex;  		}; @@ -617,6 +617,15 @@ nfs_fileid_to_ino_t(u64 fileid)  #define NFS_JUKEBOX_RETRY_TIME (5 * HZ) +/* We need to block new opens while a file is being unlinked. + * If it is opened *before* we decide to unlink, we will silly-rename + * instead. If it is opened *after*, then we need to create or will fail. + * If we allow the two to race, we could end up with a file that is open + * but deleted on the server resulting in ESTALE. + * So use ->d_fsdata to record when the unlink is happening + * and block dentry revalidation while it is set. + */ +#define NFS_FSDATA_BLOCKED ((void*)1)  # undef ifdebug  # ifdef NFS_DEBUG  | 
