diff options
author | Jeff Layton <jlayton@kernel.org> | 2022-11-16 17:55:36 +0300 |
---|---|---|
committer | Jeff Layton <jlayton@kernel.org> | 2022-11-30 13:08:10 +0300 |
commit | 17b985def2a859d66d27afee442147468a6a4ea6 (patch) | |
tree | 154c88c226a8edb3b61506296725abfd897b5ac8 /fs/nfs/write.c | |
parent | 98b41ffe0afdfeaa1439a5d6bd2db4a94277e31b (diff) | |
download | linux-17b985def2a859d66d27afee442147468a6a4ea6.tar.xz |
nfs: use locks_inode_context helper
nfs currently doesn't access i_flctx safely. This requires a
smp_load_acquire, as the pointer is set via cmpxchg (a release
operation).
Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: Anna Schumaker <anna@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index f41d24b54fd1..80c240e50952 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -1185,7 +1185,7 @@ int nfs_flush_incompatible(struct file *file, struct page *page) { struct nfs_open_context *ctx = nfs_file_open_context(file); struct nfs_lock_context *l_ctx; - struct file_lock_context *flctx = file_inode(file)->i_flctx; + struct file_lock_context *flctx = locks_inode_context(file_inode(file)); struct nfs_page *req; int do_flush, status; /* @@ -1321,7 +1321,7 @@ static int nfs_can_extend_write(struct file *file, struct page *page, struct inode *inode, unsigned int pagelen) { int ret; - struct file_lock_context *flctx = inode->i_flctx; + struct file_lock_context *flctx = locks_inode_context(inode); struct file_lock *fl; if (file->f_flags & O_DSYNC) |