summaryrefslogtreecommitdiff
path: root/ipc/mqueue.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2026-10-09 21:05:30 +0200
committerMark Brown <broonie@kernel.org>2026-10-09 21:05:30 +0200
commit0bc99dcffd027019fb47fa61735e5a8843dfc698 (patch)
treeb2425fe02b6b8281d181224babbe8071c4c2849e /ipc/mqueue.c
parentf3e80afbdf1062ea584754bb17569ee363adb267 (diff)
parent56de113da14706d6a1b28648e9ff5c261f536201 (diff)
downloadlinux-next-0bc99dcffd027019fb47fa61735e5a8843dfc698.tar.gz
linux-next-0bc99dcffd027019fb47fa61735e5a8843dfc698.zip
Merge branch 'mm-nonmm-stable' of https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Diffstat (limited to 'ipc/mqueue.c')
-rw-r--r--ipc/mqueue.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index d1dd36a651b0..d1a1965c9811 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -528,6 +528,13 @@ static void mqueue_evict_inode(struct inode *inode)
list_add_tail(&msg->m_list, &tmp_msg);
kfree(info->node_cache);
spin_unlock(&info->lock);
+ /*
+ * A shared file table can let the notification owner exit without
+ * running ->flush(). No users of the inode remain during eviction, so
+ * tear down any stale notification after dropping info->lock because
+ * netlink_sendskb() may release the final socket reference.
+ */
+ remove_notification(info);
list_for_each_entry_safe(msg, nmsg, &tmp_msg, m_list) {
list_del(&msg->m_list);