From: David Howells <dhowells@redhat.com>
To: Christian Brauner <christian@brauner.io>
Cc: David Howells <dhowells@redhat.com>,
Marc Dionne <marc.dionne@auristor.com>,
linux-afs@lists.infradead.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, Thomas Gleixner <tglx@kernel.org>
Subject: [PATCH v2 10/17] afs: Fix reinitialisation of the inode, in particular ->lock_work
Date: Thu, 18 Jun 2026 08:48:53 +0100 [thread overview]
Message-ID: <20260618074903.2374756-11-dhowells@redhat.com> (raw)
In-Reply-To: <20260618074903.2374756-1-dhowells@redhat.com>
It seems that initalising afs_vnode::lock_work a single time in the slab's
init function isn't sufficient for work_structs. This results in the
DEBUG_OBJECTS debugging stuff producing a warning occasionally when running
the generic/131 xfstest:
ODEBUG: activate not available (active state 0) object: 0000000016d8760f object type: work_struct hint: afs_lock_work+0x0/0x220
WARNING: lib/debugobjects.c:629 at debug_print_object+0x4b/0x90, CPU#3: locktest/7695
...
CPU: 3 UID: 0 PID: 7695 Comm: locktest Tainted: G S 7.1.0-build3+ #2771 PREEMPT
...
RIP: 0010:debug_print_object+0x65/0x90
...
Call Trace:
<TASK>
? __pfx_afs_lock_work+0x10/0x10
debug_object_activate+0x122/0x170
insert_work+0x25/0x60
__queue_work+0x2e0/0x340
queue_delayed_work_on+0x48/0x70
afs_fl_release_private+0x57/0x70
locks_release_private+0x5c/0xa0
locks_free_lock+0xe/0x20
posix_lock_inode+0x55f/0x5b0
locks_lock_inode_wait+0x81/0x140
? file_write_and_wait_range+0x50/0x70
afs_lock+0xcd/0x110
fcntl_setlk+0x10d/0x260
do_fcntl+0x24e/0x5b0
__do_sys_fcntl+0x6a/0x90
do_syscall_64+0x11e/0x310
entry_SYSCALL_64_after_hwframe+0x71/0x79
Fix this by reinitialising ->lock_work after allocating an inode.
Fixes: e8d6c554126b ("AFS: implement file locking")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Thomas Gleixner <tglx@kernel.org>
cc: linux-afs@lists.infradead.org
---
fs/afs/super.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/afs/super.c b/fs/afs/super.c
index dec091e569c4..82bb713825a0 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -660,7 +660,6 @@ static void afs_i_init_once(void *_vnode)
INIT_LIST_HEAD(&vnode->wb_keys);
INIT_LIST_HEAD(&vnode->pending_locks);
INIT_LIST_HEAD(&vnode->granted_locks);
- INIT_DELAYED_WORK(&vnode->lock_work, afs_lock_work);
INIT_LIST_HEAD(&vnode->cb_mmap_link);
seqlock_init(&vnode->cb_lock);
}
@@ -694,6 +693,7 @@ static struct inode *afs_alloc_inode(struct super_block *sb)
init_rwsem(&vnode->rmdir_lock);
INIT_WORK(&vnode->cb_work, afs_invalidate_mmap_work);
+ INIT_DELAYED_WORK(&vnode->lock_work, afs_lock_work);
_leave(" = %p", &vnode->netfs.inode);
return &vnode->netfs.inode;
next prev parent reply other threads:[~2026-06-18 7:49 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-18 7:48 [PATCH v2 00/17] afs: Miscellaneous fixes David Howells
2026-06-18 7:48 ` [PATCH v2 01/17] afs: handle CB.InitCallBackState3 requests without a server record David Howells
2026-06-18 7:48 ` [PATCH v2 02/17] afs: Fix error code in afs_extract_vl_addrs() David Howells
2026-06-18 7:48 ` [PATCH v2 03/17] afs: fix NULL pointer dereference in afs_get_tree() David Howells
2026-06-18 7:48 ` [PATCH v2 04/17] afs: Remove setting of AS_RELEASE_ALWAYS for symlinks and mountpoints David Howells
2026-06-18 7:48 ` [PATCH v2 05/17] afs: use kvfree() to free memory allocated by kvcalloc() David Howells
2026-06-18 7:48 ` [PATCH v2 06/17] afs: Remove erroneous seq |= 1 in volume lookup loop David Howells
2026-06-18 7:48 ` [PATCH v2 07/17] afs: check for duplicate servers in VL server list David Howells
2026-06-18 7:48 ` [PATCH v2 08/17] afs: Fix bulk lookup malfunction due to change in dir_emit() API David Howells
2026-06-18 7:48 ` [PATCH v2 09/17] afs: Fix misplaced inc of net->cells_outstanding David Howells
2026-06-18 7:48 ` David Howells [this message]
2026-06-18 7:48 ` [PATCH v2 11/17] afs: Fix callback service message parsers to pass through -EAGAIN David Howells
2026-06-18 7:48 ` [PATCH v2 12/17] afs: Fix double netfs initialisation in afs_root_iget() David Howells
2026-06-18 7:48 ` [PATCH v2 13/17] afs: Don't use AS_RELEASE_ALWAYS for dir/symlinks part 2 David Howells
2026-06-18 7:48 ` [PATCH v2 14/17] afs: Remove erroneous seq |= 1 in volume lookup loop David Howells
2026-06-18 8:25 ` Oleg Nesterov
2026-06-18 11:59 ` David Howells
2026-06-18 13:53 ` David Howells
2026-06-18 15:08 ` Oleg Nesterov
2026-06-18 8:43 ` 答复: [????] " Li,Rongqing
2026-06-18 7:48 ` [PATCH v2 15/17] afs: Fix leak of ungot volume David Howells
2026-06-18 7:48 ` [PATCH v2 16/17] afs: Fix missing NULL pointer check in afs_break_some_callbacks() David Howells
2026-06-18 7:49 ` [PATCH v2 17/17] afs: Fix vllist leak David Howells
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=20260618074903.2374756-11-dhowells@redhat.com \
--to=dhowells@redhat.com \
--cc=christian@brauner.io \
--cc=linux-afs@lists.infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.dionne@auristor.com \
--cc=tglx@kernel.org \
/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