From: Jeff Layton <jlayton@kernel.org>
To: Christian Brauner <brauner@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Eric Van Hensbergen <ericvh@kernel.org>,
Latchesar Ionkov <lucho@ionkov.net>,
Dominique Martinet <asmadeus@codewreck.org>,
Christian Schoenebeck <linux_oss@crudebyte.com>,
David Howells <dhowells@redhat.com>,
Marc Dionne <marc.dionne@auristor.com>,
Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,
Alexander Aring <aahringo@redhat.com>,
David Teigland <teigland@redhat.com>,
Miklos Szeredi <miklos@szeredi.hu>,
Andreas Gruenbacher <agruenba@redhat.com>,
Trond Myklebust <trond.myklebust@hammerspace.com>,
Anna Schumaker <anna@kernel.org>,
Chuck Lever <chuck.lever@oracle.com>, Neil Brown <neilb@suse.de>,
Olga Kornievskaia <kolga@netapp.com>,
Dai Ngo <Dai.Ngo@oracle.com>, Tom Talpey <tom@talpey.com>,
Jan Kara <jack@suse.cz>, Mark Fasheh <mark@fasheh.com>,
Joel Becker <jlbec@evilplan.org>,
Joseph Qi <joseph.qi@linux.alibaba.com>,
Steve French <sfrench@samba.org>,
Paulo Alcantara <pc@manguebit.com>,
Shyam Prasad N <sprasad@microsoft.com>,
Namjae Jeon <linkinjeon@kernel.org>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Ronnie Sahlberg <ronniesahlberg@gmail.com>
Cc: linux-kernel@vger.kernel.org, v9fs@lists.linux.dev,
linux-afs@lists.infradead.org, ceph-devel@vger.kernel.org,
gfs2@lists.linux.dev, linux-fsdevel@vger.kernel.org,
linux-nfs@vger.kernel.org, ocfs2-devel@lists.linux.dev,
linux-cifs@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
Jeff Layton <jlayton@kernel.org>
Subject: [PATCH v2 30/41] afs: adapt to breakup of struct file_lock
Date: Thu, 25 Jan 2024 05:43:11 -0500 [thread overview]
Message-ID: <20240125-flsplit-v2-30-7485322b62c7@kernel.org> (raw)
In-Reply-To: <20240125-flsplit-v2-0-7485322b62c7@kernel.org>
Most of the existing APIs have remained the same, but subsystems that
access file_lock fields directly need to reach into struct
file_lock_core now.
Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
fs/afs/flock.c | 55 +++++++++++++++++++++++-----------------------
fs/afs/internal.h | 1 -
include/trace/events/afs.h | 4 ++--
3 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/fs/afs/flock.c b/fs/afs/flock.c
index e7feaf66bddf..34e7510526b9 100644
--- a/fs/afs/flock.c
+++ b/fs/afs/flock.c
@@ -93,13 +93,13 @@ static void afs_grant_locks(struct afs_vnode *vnode)
bool exclusive = (vnode->lock_type == AFS_LOCK_WRITE);
list_for_each_entry_safe(p, _p, &vnode->pending_locks, fl_u.afs.link) {
- if (!exclusive && p->fl_type == F_WRLCK)
+ if (!exclusive && p->fl_core.flc_type == F_WRLCK)
continue;
list_move_tail(&p->fl_u.afs.link, &vnode->granted_locks);
p->fl_u.afs.state = AFS_LOCK_GRANTED;
trace_afs_flock_op(vnode, p, afs_flock_op_grant);
- wake_up(&p->fl_wait);
+ wake_up(&p->fl_core.flc_wait);
}
}
@@ -121,16 +121,16 @@ static void afs_next_locker(struct afs_vnode *vnode, int error)
list_for_each_entry_safe(p, _p, &vnode->pending_locks, fl_u.afs.link) {
if (error &&
- p->fl_type == type &&
- afs_file_key(p->fl_file) == key) {
+ p->fl_core.flc_type == type &&
+ afs_file_key(p->fl_core.flc_file) == key) {
list_del_init(&p->fl_u.afs.link);
p->fl_u.afs.state = error;
- wake_up(&p->fl_wait);
+ wake_up(&p->fl_core.flc_wait);
}
/* Select the next locker to hand off to. */
if (next &&
- (next->fl_type == F_WRLCK || p->fl_type == F_RDLCK))
+ (next->fl_core.flc_type == F_WRLCK || p->fl_core.flc_type == F_RDLCK))
continue;
next = p;
}
@@ -142,7 +142,7 @@ static void afs_next_locker(struct afs_vnode *vnode, int error)
afs_set_lock_state(vnode, AFS_VNODE_LOCK_SETTING);
next->fl_u.afs.state = AFS_LOCK_YOUR_TRY;
trace_afs_flock_op(vnode, next, afs_flock_op_wake);
- wake_up(&next->fl_wait);
+ wake_up(&next->fl_core.flc_wait);
} else {
afs_set_lock_state(vnode, AFS_VNODE_LOCK_NONE);
trace_afs_flock_ev(vnode, NULL, afs_flock_no_lockers, 0);
@@ -166,7 +166,7 @@ static void afs_kill_lockers_enoent(struct afs_vnode *vnode)
struct file_lock, fl_u.afs.link);
list_del_init(&p->fl_u.afs.link);
p->fl_u.afs.state = -ENOENT;
- wake_up(&p->fl_wait);
+ wake_up(&p->fl_core.flc_wait);
}
key_put(vnode->lock_key);
@@ -464,14 +464,14 @@ static int afs_do_setlk(struct file *file, struct file_lock *fl)
_enter("{%llx:%llu},%llu-%llu,%u,%u",
vnode->fid.vid, vnode->fid.vnode,
- fl->fl_start, fl->fl_end, fl->fl_type, mode);
+ fl->fl_start, fl->fl_end, fl->fl_core.flc_type, mode);
fl->fl_ops = &afs_lock_ops;
INIT_LIST_HEAD(&fl->fl_u.afs.link);
fl->fl_u.afs.state = AFS_LOCK_PENDING;
partial = (fl->fl_start != 0 || fl->fl_end != OFFSET_MAX);
- type = (fl->fl_type == F_RDLCK) ? AFS_LOCK_READ : AFS_LOCK_WRITE;
+ type = (fl->fl_core.flc_type == F_RDLCK) ? AFS_LOCK_READ : AFS_LOCK_WRITE;
if (mode == afs_flock_mode_write && partial)
type = AFS_LOCK_WRITE;
@@ -524,7 +524,7 @@ static int afs_do_setlk(struct file *file, struct file_lock *fl)
}
if (vnode->lock_state == AFS_VNODE_LOCK_NONE &&
- !(fl->fl_flags & FL_SLEEP)) {
+ !(fl->fl_core.flc_flags & FL_SLEEP)) {
ret = -EAGAIN;
if (type == AFS_LOCK_READ) {
if (vnode->status.lock_count == -1)
@@ -621,7 +621,7 @@ static int afs_do_setlk(struct file *file, struct file_lock *fl)
return 0;
lock_is_contended:
- if (!(fl->fl_flags & FL_SLEEP)) {
+ if (!(fl->fl_core.flc_flags & FL_SLEEP)) {
list_del_init(&fl->fl_u.afs.link);
afs_next_locker(vnode, 0);
ret = -EAGAIN;
@@ -641,7 +641,7 @@ static int afs_do_setlk(struct file *file, struct file_lock *fl)
spin_unlock(&vnode->lock);
trace_afs_flock_ev(vnode, fl, afs_flock_waiting, 0);
- ret = wait_event_interruptible(fl->fl_wait,
+ ret = wait_event_interruptible(fl->fl_core.flc_wait,
fl->fl_u.afs.state != AFS_LOCK_PENDING);
trace_afs_flock_ev(vnode, fl, afs_flock_waited, ret);
@@ -704,7 +704,8 @@ static int afs_do_unlk(struct file *file, struct file_lock *fl)
struct afs_vnode *vnode = AFS_FS_I(file_inode(file));
int ret;
- _enter("{%llx:%llu},%u", vnode->fid.vid, vnode->fid.vnode, fl->fl_type);
+ _enter("{%llx:%llu},%u", vnode->fid.vid, vnode->fid.vnode,
+ fl->fl_core.flc_type);
trace_afs_flock_op(vnode, fl, afs_flock_op_unlock);
@@ -730,11 +731,11 @@ static int afs_do_getlk(struct file *file, struct file_lock *fl)
if (vnode->lock_state == AFS_VNODE_LOCK_DELETED)
return -ENOENT;
- fl->fl_type = F_UNLCK;
+ fl->fl_core.flc_type = F_UNLCK;
/* check local lock records first */
posix_test_lock(file, fl);
- if (fl->fl_type == F_UNLCK) {
+ if (fl->fl_core.flc_type == F_UNLCK) {
/* no local locks; consult the server */
ret = afs_fetch_status(vnode, key, false, NULL);
if (ret < 0)
@@ -743,18 +744,18 @@ static int afs_do_getlk(struct file *file, struct file_lock *fl)
lock_count = READ_ONCE(vnode->status.lock_count);
if (lock_count != 0) {
if (lock_count > 0)
- fl->fl_type = F_RDLCK;
+ fl->fl_core.flc_type = F_RDLCK;
else
- fl->fl_type = F_WRLCK;
+ fl->fl_core.flc_type = F_WRLCK;
fl->fl_start = 0;
fl->fl_end = OFFSET_MAX;
- fl->fl_pid = 0;
+ fl->fl_core.flc_pid = 0;
}
}
ret = 0;
error:
- _leave(" = %d [%hd]", ret, fl->fl_type);
+ _leave(" = %d [%hd]", ret, fl->fl_core.flc_type);
return ret;
}
@@ -769,7 +770,7 @@ int afs_lock(struct file *file, int cmd, struct file_lock *fl)
_enter("{%llx:%llu},%d,{t=%x,fl=%x,r=%Ld:%Ld}",
vnode->fid.vid, vnode->fid.vnode, cmd,
- fl->fl_type, fl->fl_flags,
+ fl->fl_core.flc_type, fl->fl_core.flc_flags,
(long long) fl->fl_start, (long long) fl->fl_end);
if (IS_GETLK(cmd))
@@ -778,7 +779,7 @@ int afs_lock(struct file *file, int cmd, struct file_lock *fl)
fl->fl_u.afs.debug_id = atomic_inc_return(&afs_file_lock_debug_id);
trace_afs_flock_op(vnode, fl, afs_flock_op_lock);
- if (fl->fl_type == F_UNLCK)
+ if (fl->fl_core.flc_type == F_UNLCK)
ret = afs_do_unlk(file, fl);
else
ret = afs_do_setlk(file, fl);
@@ -804,7 +805,7 @@ int afs_flock(struct file *file, int cmd, struct file_lock *fl)
_enter("{%llx:%llu},%d,{t=%x,fl=%x}",
vnode->fid.vid, vnode->fid.vnode, cmd,
- fl->fl_type, fl->fl_flags);
+ fl->fl_core.flc_type, fl->fl_core.flc_flags);
/*
* No BSD flocks over NFS allowed.
@@ -813,14 +814,14 @@ int afs_flock(struct file *file, int cmd, struct file_lock *fl)
* Not sure whether that would be unique, though, or whether
* that would break in other places.
*/
- if (!(fl->fl_flags & FL_FLOCK))
+ if (!(fl->fl_core.flc_flags & FL_FLOCK))
return -ENOLCK;
fl->fl_u.afs.debug_id = atomic_inc_return(&afs_file_lock_debug_id);
trace_afs_flock_op(vnode, fl, afs_flock_op_flock);
/* we're simulating flock() locks using posix locks on the server */
- if (fl->fl_type == F_UNLCK)
+ if (fl->fl_core.flc_type == F_UNLCK)
ret = afs_do_unlk(file, fl);
else
ret = afs_do_setlk(file, fl);
@@ -843,7 +844,7 @@ int afs_flock(struct file *file, int cmd, struct file_lock *fl)
*/
static void afs_fl_copy_lock(struct file_lock *new, struct file_lock *fl)
{
- struct afs_vnode *vnode = AFS_FS_I(file_inode(fl->fl_file));
+ struct afs_vnode *vnode = AFS_FS_I(file_inode(fl->fl_core.flc_file));
_enter("");
@@ -861,7 +862,7 @@ static void afs_fl_copy_lock(struct file_lock *new, struct file_lock *fl)
*/
static void afs_fl_release_private(struct file_lock *fl)
{
- struct afs_vnode *vnode = AFS_FS_I(file_inode(fl->fl_file));
+ struct afs_vnode *vnode = AFS_FS_I(file_inode(fl->fl_core.flc_file));
_enter("");
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index f5dd428e40f4..9c03fcf7ffaa 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -9,7 +9,6 @@
#include <linux/kernel.h>
#include <linux/ktime.h>
#include <linux/fs.h>
-#define _NEED_FILE_LOCK_FIELD_MACROS
#include <linux/filelock.h>
#include <linux/pagemap.h>
#include <linux/rxrpc.h>
diff --git a/include/trace/events/afs.h b/include/trace/events/afs.h
index 8d73171cb9f0..51b41d957c66 100644
--- a/include/trace/events/afs.h
+++ b/include/trace/events/afs.h
@@ -1164,8 +1164,8 @@ TRACE_EVENT(afs_flock_op,
__entry->from = fl->fl_start;
__entry->len = fl->fl_end - fl->fl_start + 1;
__entry->op = op;
- __entry->type = fl->fl_type;
- __entry->flags = fl->fl_flags;
+ __entry->type = fl->fl_core.flc_type;
+ __entry->flags = fl->fl_core.flc_flags;
__entry->debug_id = fl->fl_u.afs.debug_id;
),
--
2.43.0
next prev parent reply other threads:[~2024-01-25 10:45 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-25 10:42 [PATCH v2 00/41] filelock: split struct file_lock into file_lock and file_lease structs Jeff Layton
2024-01-25 10:42 ` [PATCH v2 01/41] filelock: rename some fields in tracepoints Jeff Layton
2024-01-25 10:42 ` [PATCH v2 02/41] filelock: rename fl_pid variable in lock_get_status Jeff Layton
2024-01-25 10:42 ` [PATCH v2 03/41] dlm: rename fl_flags variable in dlm_posix_unlock Jeff Layton
2024-01-25 10:42 ` [PATCH v2 04/41] nfs: rename fl_flags variable in nfs4_proc_unlck Jeff Layton
2024-01-25 10:42 ` [PATCH v2 05/41] nfsd: rename fl_type and fl_flags variables in nfsd4_lock Jeff Layton
2024-01-25 10:42 ` [PATCH v2 06/41] lockd: rename fl_flags and fl_type variables in nlmclnt_lock Jeff Layton
2024-01-25 10:42 ` [PATCH v2 07/41] 9p: rename fl_type variable in v9fs_file_do_lock Jeff Layton
2024-01-25 10:42 ` [PATCH v2 08/41] afs: rename fl_type variable in afs_next_locker Jeff Layton
2024-01-25 10:42 ` [PATCH v2 09/41] filelock: drop the IS_* macros Jeff Layton
2024-01-25 10:42 ` [PATCH v2 10/41] filelock: split common fields into struct file_lock_core Jeff Layton
2024-01-25 10:42 ` [PATCH v2 11/41] filelock: add coccinelle scripts to move fields to " Jeff Layton
2024-01-25 10:42 ` [PATCH v2 12/41] filelock: have fs/locks.c deal with file_lock_core directly Jeff Layton
2024-01-25 10:42 ` [PATCH v2 13/41] filelock: convert some internal functions to use file_lock_core instead Jeff Layton
2024-01-25 10:42 ` [PATCH v2 14/41] filelock: convert more internal functions to use file_lock_core Jeff Layton
2024-01-25 10:42 ` [PATCH v2 15/41] filelock: make posix_same_owner take file_lock_core pointers Jeff Layton
2024-01-25 10:42 ` [PATCH v2 16/41] filelock: convert posix_owner_key to take file_lock_core arg Jeff Layton
2024-01-25 10:42 ` [PATCH v2 17/41] filelock: make locks_{insert,delete}_global_locks " Jeff Layton
2024-01-25 10:42 ` [PATCH v2 18/41] filelock: convert locks_{insert,delete}_global_blocked Jeff Layton
2024-01-25 10:43 ` [PATCH v2 19/41] filelock: make __locks_delete_block and __locks_wake_up_blocks take file_lock_core Jeff Layton
2024-01-25 10:43 ` [PATCH v2 20/41] filelock: convert __locks_insert_block, conflict and deadlock checks to use file_lock_core Jeff Layton
2024-01-25 10:43 ` [PATCH v2 21/41] filelock: convert fl_blocker to file_lock_core Jeff Layton
2024-01-25 10:43 ` [PATCH v2 22/41] filelock: clean up locks_delete_block internals Jeff Layton
2024-01-25 10:43 ` [PATCH v2 23/41] filelock: reorganize locks_delete_block and __locks_insert_block Jeff Layton
2024-01-25 10:43 ` [PATCH v2 24/41] filelock: make assign_type helper take a file_lock_core pointer Jeff Layton
2024-01-25 10:43 ` [PATCH v2 25/41] filelock: convert locks_wake_up_blocks to " Jeff Layton
2024-01-25 10:43 ` [PATCH v2 26/41] filelock: convert locks_insert_lock_ctx and locks_delete_lock_ctx Jeff Layton
2024-01-25 10:43 ` [PATCH v2 27/41] filelock: convert locks_translate_pid to take file_lock_core Jeff Layton
2024-01-25 10:43 ` [PATCH v2 28/41] filelock: convert seqfile handling to use file_lock_core Jeff Layton
2024-01-25 10:43 ` [PATCH v2 29/41] 9p: adapt to breakup of struct file_lock Jeff Layton
2024-01-25 10:43 ` Jeff Layton [this message]
2024-01-25 10:43 ` [PATCH v2 31/41] ceph: " Jeff Layton
2024-01-25 10:43 ` [PATCH v2 32/41] dlm: " Jeff Layton
2024-01-25 10:43 ` [PATCH v2 33/41] gfs2: " Jeff Layton
2024-01-25 10:43 ` [PATCH v2 34/41] lockd: " Jeff Layton
2024-01-25 10:43 ` [PATCH v2 35/41] nfs: " Jeff Layton
2024-01-25 10:43 ` [PATCH v2 36/41] nfsd: " Jeff Layton
2024-01-25 10:43 ` [PATCH v2 37/41] ocfs2: " Jeff Layton
2024-01-25 10:43 ` [PATCH v2 38/41] smb/client: " Jeff Layton
2024-01-25 10:43 ` [PATCH v2 39/41] smb/server: " Jeff Layton
2024-01-25 10:43 ` [PATCH v2 40/41] filelock: remove temporary compatability macros Jeff Layton
2024-01-25 10:43 ` [PATCH v2 41/41] filelock: split leases out of struct file_lock Jeff Layton
2024-01-25 14:57 ` [PATCH v2 00/41] filelock: split struct file_lock into file_lock and file_lease structs Chuck Lever
2024-01-25 17:00 ` Jeff Layton
2024-01-25 22:34 ` NeilBrown
2024-01-25 23:58 ` Jeff Layton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240125-flsplit-v2-30-7485322b62c7@kernel.org \
--to=jlayton@kernel.org \
--cc=Dai.Ngo@oracle.com \
--cc=aahringo@redhat.com \
--cc=agruenba@redhat.com \
--cc=anna@kernel.org \
--cc=asmadeus@codewreck.org \
--cc=brauner@kernel.org \
--cc=ceph-devel@vger.kernel.org \
--cc=chuck.lever@oracle.com \
--cc=dhowells@redhat.com \
--cc=ericvh@kernel.org \
--cc=gfs2@lists.linux.dev \
--cc=idryomov@gmail.com \
--cc=jack@suse.cz \
--cc=jlbec@evilplan.org \
--cc=joseph.qi@linux.alibaba.com \
--cc=kolga@netapp.com \
--cc=linkinjeon@kernel.org \
--cc=linux-afs@lists.infradead.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=linux_oss@crudebyte.com \
--cc=lucho@ionkov.net \
--cc=marc.dionne@auristor.com \
--cc=mark@fasheh.com \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=miklos@szeredi.hu \
--cc=neilb@suse.de \
--cc=ocfs2-devel@lists.linux.dev \
--cc=pc@manguebit.com \
--cc=ronniesahlberg@gmail.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
--cc=sfrench@samba.org \
--cc=sprasad@microsoft.com \
--cc=teigland@redhat.com \
--cc=tom@talpey.com \
--cc=trond.myklebust@hammerspace.com \
--cc=v9fs@lists.linux.dev \
--cc=viro@zeniv.linux.org.uk \
--cc=xiubli@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).