All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Jan Kara <jack@suse.cz>,
	Al Viro <viro@zeniv.linux.org.uk>
Subject: [PATCH 6.1 057/185] rename(): fix the locking of subdirectories
Date: Mon, 29 Jan 2024 09:04:17 -0800	[thread overview]
Message-ID: <20240129170000.430957435@linuxfoundation.org> (raw)
In-Reply-To: <20240129165958.589924174@linuxfoundation.org>

6.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Al Viro <viro@zeniv.linux.org.uk>

commit 22e111ed6c83dcde3037fc81176012721bc34c0b upstream.

	We should never lock two subdirectories without having taken
->s_vfs_rename_mutex; inode pointer order or not, the "order" proposed
in 28eceeda130f "fs: Lock moved directories" is not transitive, with
the usual consequences.

	The rationale for locking renamed subdirectory in all cases was
the possibility of race between rename modifying .. in a subdirectory to
reflect the new parent and another thread modifying the same subdirectory.
For a lot of filesystems that's not a problem, but for some it can lead
to trouble (e.g. the case when short directory contents is kept in the
inode, but creating a file in it might push it across the size limit
and copy its contents into separate data block(s)).

	However, we need that only in case when the parent does change -
otherwise ->rename() doesn't need to do anything with .. entry in the
first place.  Some instances are lazy and do a tautological update anyway,
but it's really not hard to avoid.

Amended locking rules for rename():
	find the parent(s) of source and target
	if source and target have the same parent
		lock the common parent
	else
		lock ->s_vfs_rename_mutex
		lock both parents, in ancestor-first order; if neither
		is an ancestor of another, lock the parent of source
		first.
	find the source and target.
	if source and target have the same parent
		if operation is an overwriting rename of a subdirectory
			lock the target subdirectory
	else
		if source is a subdirectory
			lock the source
		if target is a subdirectory
			lock the target
	lock non-directories involved, in inode pointer order if both
	source and target are such.

That way we are guaranteed that parents are locked (for obvious reasons),
that any renamed non-directory is locked (nfsd relies upon that),
that any victim is locked (emptiness check needs that, among other things)
and subdirectory that changes parent is locked (needed to protect the update
of .. entries).  We are also guaranteed that any operation locking more
than one directory either takes ->s_vfs_rename_mutex or locks a parent
followed by its child.

Cc: stable@vger.kernel.org
Fixes: 28eceeda130f "fs: Lock moved directories"
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 Documentation/filesystems/directory-locking.rst |   29 ++++++-----
 Documentation/filesystems/locking.rst           |    5 +-
 Documentation/filesystems/porting.rst           |   18 +++++++
 fs/namei.c                                      |   60 ++++++++++++++----------
 4 files changed, 74 insertions(+), 38 deletions(-)

--- a/Documentation/filesystems/directory-locking.rst
+++ b/Documentation/filesystems/directory-locking.rst
@@ -22,13 +22,16 @@ exclusive.
 3) object removal.  Locking rules: caller locks parent, finds victim,
 locks victim and calls the method.  Locks are exclusive.
 
-4) rename() that is _not_ cross-directory.  Locking rules: caller locks the
-parent and finds source and target.  We lock both (provided they exist).  If we
-need to lock two inodes of different type (dir vs non-dir), we lock directory
-first.  If we need to lock two inodes of the same type, lock them in inode
-pointer order.  Then call the method.  All locks are exclusive.
-NB: we might get away with locking the source (and target in exchange
-case) shared.
+4) rename() that is _not_ cross-directory.  Locking rules: caller locks
+the parent and finds source and target.  Then we decide which of the
+source and target need to be locked.  Source needs to be locked if it's a
+non-directory; target - if it's a non-directory or about to be removed.
+Take the locks that need to be taken, in inode pointer order if need
+to take both (that can happen only when both source and target are
+non-directories - the source because it wouldn't be locked otherwise
+and the target because mixing directory and non-directory is allowed
+only with RENAME_EXCHANGE, and that won't be removing the target).
+After the locks had been taken, call the method.  All locks are exclusive.
 
 5) link creation.  Locking rules:
 
@@ -44,20 +47,17 @@ rules:
 
 	* lock the filesystem
 	* lock parents in "ancestors first" order. If one is not ancestor of
-	  the other, lock them in inode pointer order.
+	  the other, lock the parent of source first.
 	* find source and target.
 	* if old parent is equal to or is a descendent of target
 	  fail with -ENOTEMPTY
 	* if new parent is equal to or is a descendent of source
 	  fail with -ELOOP
-	* Lock both the source and the target provided they exist. If we
-	  need to lock two inodes of different type (dir vs non-dir), we lock
-	  the directory first. If we need to lock two inodes of the same type,
-	  lock them in inode pointer order.
+	* Lock subdirectories involved (source before target).
+	* Lock non-directories involved, in inode pointer order.
 	* call the method.
 
-All ->i_rwsem are taken exclusive.  Again, we might get away with locking
-the source (and target in exchange case) shared.
+All ->i_rwsem are taken exclusive.
 
 The rules above obviously guarantee that all directories that are going to be
 read, modified or removed by method will be locked by caller.
@@ -67,6 +67,7 @@ If no directory is its own ancestor, the
 
 Proof:
 
+[XXX: will be updated once we are done massaging the lock_rename()]
 	First of all, at any moment we have a linear ordering of the
 	objects - A < B iff (A is an ancestor of B) or (B is not an ancestor
         of A and ptr(A) < ptr(B)).
--- a/Documentation/filesystems/locking.rst
+++ b/Documentation/filesystems/locking.rst
@@ -99,7 +99,7 @@ symlink:	exclusive
 mkdir:		exclusive
 unlink:		exclusive (both)
 rmdir:		exclusive (both)(see below)
-rename:		exclusive (all)	(see below)
+rename:		exclusive (both parents, some children)	(see below)
 readlink:	no
 get_link:	no
 setattr:	exclusive
@@ -119,6 +119,9 @@ fileattr_set:	exclusive
 	Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem
 	exclusive on victim.
 	cross-directory ->rename() has (per-superblock) ->s_vfs_rename_sem.
+	->unlink() and ->rename() have ->i_rwsem exclusive on all non-directories
+	involved.
+	->rename() has ->i_rwsem exclusive on any subdirectory that changes parent.
 
 See Documentation/filesystems/directory-locking.rst for more detailed discussion
 of the locking scheme for directory operations.
--- a/Documentation/filesystems/porting.rst
+++ b/Documentation/filesystems/porting.rst
@@ -943,3 +943,21 @@ file pointer instead of struct dentry po
 changed to simplify callers.  The passed file is in a non-open state and on
 success must be opened before returning (e.g. by calling
 finish_open_simple()).
+
+---
+
+**mandatory**
+
+If ->rename() update of .. on cross-directory move needs an exclusion with
+directory modifications, do *not* lock the subdirectory in question in your
+->rename() - it's done by the caller now [that item should've been added in
+28eceeda130f "fs: Lock moved directories"].
+
+---
+
+**mandatory**
+
+On same-directory ->rename() the (tautological) update of .. is not protected
+by any locks; just don't do it if the old parent is the same as the new one.
+We really can't lock two subdirectories in same-directory rename - not without
+deadlocks.
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -3017,20 +3017,14 @@ static struct dentry *lock_two_directori
 	p = d_ancestor(p2, p1);
 	if (p) {
 		inode_lock_nested(p2->d_inode, I_MUTEX_PARENT);
-		inode_lock_nested(p1->d_inode, I_MUTEX_CHILD);
+		inode_lock_nested(p1->d_inode, I_MUTEX_PARENT2);
 		return p;
 	}
 
 	p = d_ancestor(p1, p2);
-	if (p) {
-		inode_lock_nested(p1->d_inode, I_MUTEX_PARENT);
-		inode_lock_nested(p2->d_inode, I_MUTEX_CHILD);
-		return p;
-	}
-
-	lock_two_inodes(p1->d_inode, p2->d_inode,
-			I_MUTEX_PARENT, I_MUTEX_PARENT2);
-	return NULL;
+	inode_lock_nested(p1->d_inode, I_MUTEX_PARENT);
+	inode_lock_nested(p2->d_inode, I_MUTEX_PARENT2);
+	return p;
 }
 
 /*
@@ -4735,11 +4729,12 @@ SYSCALL_DEFINE2(link, const char __user
  *
  *	a) we can get into loop creation.
  *	b) race potential - two innocent renames can create a loop together.
- *	   That's where 4.4 screws up. Current fix: serialization on
+ *	   That's where 4.4BSD screws up. Current fix: serialization on
  *	   sb->s_vfs_rename_mutex. We might be more accurate, but that's another
  *	   story.
- *	c) we have to lock _four_ objects - parents and victim (if it exists),
- *	   and source.
+ *	c) we may have to lock up to _four_ objects - parents and victim (if it exists),
+ *	   and source (if it's a non-directory or a subdirectory that moves to
+ *	   different parent).
  *	   And that - after we got ->i_mutex on parents (until then we don't know
  *	   whether the target exists).  Solution: try to be smart with locking
  *	   order for inodes.  We rely on the fact that tree topology may change
@@ -4771,6 +4766,7 @@ int vfs_rename(struct renamedata *rd)
 	bool new_is_dir = false;
 	unsigned max_links = new_dir->i_sb->s_max_links;
 	struct name_snapshot old_name;
+	bool lock_old_subdir, lock_new_subdir;
 
 	if (source == target)
 		return 0;
@@ -4824,15 +4820,32 @@ int vfs_rename(struct renamedata *rd)
 	take_dentry_name_snapshot(&old_name, old_dentry);
 	dget(new_dentry);
 	/*
-	 * Lock all moved children. Moved directories may need to change parent
-	 * pointer so they need the lock to prevent against concurrent
-	 * directory changes moving parent pointer. For regular files we've
-	 * historically always done this. The lockdep locking subclasses are
-	 * somewhat arbitrary but RENAME_EXCHANGE in particular can swap
-	 * regular files and directories so it's difficult to tell which
-	 * subclasses to use.
+	 * Lock children.
+	 * The source subdirectory needs to be locked on cross-directory
+	 * rename or cross-directory exchange since its parent changes.
+	 * The target subdirectory needs to be locked on cross-directory
+	 * exchange due to parent change and on any rename due to becoming
+	 * a victim.
+	 * Non-directories need locking in all cases (for NFS reasons);
+	 * they get locked after any subdirectories (in inode address order).
+	 *
+	 * NOTE: WE ONLY LOCK UNRELATED DIRECTORIES IN CROSS-DIRECTORY CASE.
+	 * NEVER, EVER DO THAT WITHOUT ->s_vfs_rename_mutex.
 	 */
-	lock_two_inodes(source, target, I_MUTEX_NORMAL, I_MUTEX_NONDIR2);
+	lock_old_subdir = new_dir != old_dir;
+	lock_new_subdir = new_dir != old_dir || !(flags & RENAME_EXCHANGE);
+	if (is_dir) {
+		if (lock_old_subdir)
+			inode_lock_nested(source, I_MUTEX_CHILD);
+		if (target && (!new_is_dir || lock_new_subdir))
+			inode_lock(target);
+	} else if (new_is_dir) {
+		if (lock_new_subdir)
+			inode_lock_nested(target, I_MUTEX_CHILD);
+		inode_lock(source);
+	} else {
+		lock_two_nondirectories(source, target);
+	}
 
 	error = -EPERM;
 	if (IS_SWAPFILE(source) || (target && IS_SWAPFILE(target)))
@@ -4880,8 +4893,9 @@ int vfs_rename(struct renamedata *rd)
 			d_exchange(old_dentry, new_dentry);
 	}
 out:
-	inode_unlock(source);
-	if (target)
+	if (!is_dir || lock_old_subdir)
+		inode_unlock(source);
+	if (target && (!new_is_dir || lock_new_subdir))
 		inode_unlock(target);
 	dput(new_dentry);
 	if (!error) {



  parent reply	other threads:[~2024-01-29 17:11 UTC|newest]

Thread overview: 201+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-29 17:03 [PATCH 6.1 000/185] 6.1.76-rc1 review Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 001/185] usb: dwc3: gadget: Refactor EP0 forced stall/restart into a separate API Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 002/185] usb: dwc3: gadget: Queue PM runtime idle on disconnect event Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 003/185] usb: dwc3: gadget: Handle EP0 request dequeuing properly Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 004/185] Revert "nSVM: Check for reserved encodings of TLB_CONTROL in nested VMCB" Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 005/185] iio: adc: ad7091r: Set alert bit in config register Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 006/185] iio: adc: ad7091r: Allow users to configure device events Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 007/185] ext4: allow for the last group to be marked as trimmed Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 008/185] arm64: properly install vmlinuz.efi Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 009/185] OPP: Pass rounded rate to _set_opp() Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 010/185] btrfs: sysfs: validate scrub_speed_max value Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 011/185] crypto: api - Disallow identical driver names Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 012/185] PM: hibernate: Enforce ordering during image compression/decompression Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 013/185] hwrng: core - Fix page fault dead lock on mmap-ed hwrng Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 014/185] crypto: s390/aes - Fix buffer overread in CTR mode Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 015/185] s390/vfio-ap: unpin pages on gisc registration failure Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 016/185] PM / devfreq: Fix buffer overflow in trans_stat_show Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 017/185] media: imx355: Enable runtime PM before registering async sub-device Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 018/185] rpmsg: virtio: Free driver_override when rpmsg_remove() Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 019/185] media: ov9734: Enable runtime PM before registering async sub-device Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 020/185] s390/vfio-ap: always filter entire AP matrix Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 021/185] s390/vfio-ap: loop over the shadow APCB when filtering guests AP configuration Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 022/185] s390/vfio-ap: let on_scan_complete() callback filter matrix and update guests APCB Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 023/185] mips: Fix max_mapnr being uninitialized on early stages Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 024/185] bus: mhi: host: Add alignment check for event ring read pointer Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 025/185] bus: mhi: host: Drop chan lock before queuing buffers Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 026/185] bus: mhi: host: Add spinlock to protect WP access when queueing TREs Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 027/185] parisc/firmware: Fix F-extend for PDC addresses Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 028/185] parisc/power: Fix power soft-off button emulation on qemu Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 029/185] async: Split async_schedule_node_domain() Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 030/185] async: Introduce async_schedule_dev_nocall() Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 031/185] iio: adc: ad7091r: Enable internal vref if external vref is not supplied Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 032/185] dmaengine: fix NULL pointer in channel unregistration function Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 033/185] scsi: ufs: core: Remove the ufshcd_hba_exit() call from ufshcd_async_scan() Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 034/185] arm64: dts: qcom: sc7180: fix USB wakeup interrupt types Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 035/185] arm64: dts: qcom: sdm845: " Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 036/185] arm64: dts: qcom: sm8150: " Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 037/185] arm64: dts: qcom: sc7280: fix usb_1 " Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 038/185] arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts Greg Kroah-Hartman
2024-01-29 17:03 ` [PATCH 6.1 039/185] arm64: dts: qcom: sm8150: " Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 040/185] lsm: new security_file_ioctl_compat() hook Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 041/185] docs: kernel_abi.py: fix command injection Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 042/185] scripts/get_abi: fix source path leak Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 043/185] media: videobuf2-dma-sg: fix vmap callback Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 044/185] mmc: core: Use mrq.sbc in close-ended ffu Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 045/185] mmc: mmc_spi: remove custom DMA mapped buffers Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 046/185] media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 047/185] arm64: Rename ARM64_WORKAROUND_2966298 Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 048/185] rtc: cmos: Use ACPI alarm for non-Intel x86 systems too Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 049/185] rtc: Adjust failure return code for cmos_set_alarm() Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 050/185] rtc: mc146818-lib: Adjust failure return code for mc146818_get_time() Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 051/185] rtc: Add support for configuring the UIP timeout for RTC reads Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 052/185] rtc: Extend timeout for waiting for UIP to clear to 1s Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 053/185] nouveau/vmm: dont set addr on the fail path to avoid warning Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 054/185] ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 055/185] mm/rmap: fix misplaced parenthesis of a likely() Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 056/185] mm/sparsemem: fix race in accessing memory_section->usage Greg Kroah-Hartman
2024-01-29 17:04 ` Greg Kroah-Hartman [this message]
2024-01-29 17:04 ` [PATCH 6.1 058/185] serial: sc16is7xx: improve regmap debugfs by using one regmap per port Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 059/185] serial: sc16is7xx: remove wasteful static buffer in sc16is7xx_regmap_name() Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 060/185] serial: sc16is7xx: remove global regmap from struct sc16is7xx_port Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 061/185] serial: sc16is7xx: remove unused line structure member Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 062/185] serial: sc16is7xx: change EFR lock to operate on each channels Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 063/185] serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 064/185] serial: sc16is7xx: fix invalid sc16is7xx_lines bitfield in case of probe error Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 065/185] serial: sc16is7xx: remove obsolete loop in sc16is7xx_port_irq() Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 066/185] serial: sc16is7xx: improve do/while loop in sc16is7xx_irq() Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 067/185] LoongArch/smp: Call rcutree_report_cpu_starting() earlier Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 068/185] mm: page_alloc: unreserve highatomic page blocks before oom Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 069/185] ksmbd: set v2 lease version on lease upgrade Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 070/185] ksmbd: fix potential circular locking issue in smb2_set_ea() Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 071/185] ksmbd: dont increment epoch if current state and request state are same Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 072/185] ksmbd: send lease break notification on FILE_RENAME_INFORMATION Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 073/185] ksmbd: Add missing set_freezable() for freezable kthread Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 074/185] Revert "drm/amd: Enable PCIe PME from D3" Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 075/185] drm/amd/display: pbn_div need be updated for hotplug event Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 076/185] wifi: mac80211: fix potential sta-link leak Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 077/185] net/smc: fix illegal rmb_desc access in SMC-D connection dump Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 078/185] tcp: make sure init the accept_queues spinlocks once Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 079/185] bnxt_en: Wait for FLR to complete during probe Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 080/185] vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 081/185] llc: make llc_ui_sendmsg() more robust against bonding changes Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 082/185] llc: Drop support for ETH_P_TR_802_2 Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 083/185] udp: fix busy polling Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 084/185] net: fix removing a namespace with conflicting altnames Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 085/185] tun: fix missing dropped counter in tun_xdp_act Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 086/185] tun: add missing rx stats accounting " Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 087/185] net: micrel: Fix PTP frame parsing for lan8814 Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 088/185] net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 089/185] netfs, fscache: Prevent Oops in fscache_put_cache() Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 090/185] tracing: Ensure visibility when inserting an element into tracing_map Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 091/185] afs: Hide silly-rename files from userspace Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 092/185] tcp: Add memory barrier to tcp_push() Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 093/185] netlink: fix potential sleeping issue in mqueue_flush_file Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 094/185] ipv6: init the accept_queues spinlocks in inet6_create Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 095/185] net/mlx5: DR, Use the right GVMI number for drop action Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 096/185] net/mlx5: DR, Cant go to uplink vport on RX rule Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 097/185] net/mlx5: Use mlx5 device constant for selecting CQ period mode for ASO Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 098/185] net/mlx5e: Allow software parsing when IPsec crypto is enabled Greg Kroah-Hartman
2024-01-29 20:08   ` Salvatore Bonaccorso
2024-01-29 20:12     ` Salvatore Bonaccorso
2024-01-29 20:43       ` Greg Kroah-Hartman
2024-01-30 17:10         ` Salvatore Bonaccorso
2024-01-30 18:30           ` Greg Kroah-Hartman
2024-01-29 17:04 ` [PATCH 6.1 099/185] net/mlx5e: fix a double-free in arfs_create_groups Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 100/185] net/mlx5e: fix a potential double-free in fs_any_create_groups Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 101/185] rcu: Defer RCU kthreads wakeup when CPU is dying Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 102/185] netfilter: nft_limit: reject configurations that cause integer overflow Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 103/185] btrfs: fix infinite directory reads Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 104/185] btrfs: set last dir index to the current last index when opening dir Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 105/185] btrfs: refresh dir last index during a rewinddir(3) call Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 106/185] btrfs: fix race between reading a directory and adding entries to it Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 107/185] netfilter: nf_tables: restrict anonymous set and map names to 16 bytes Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 108/185] netfilter: nf_tables: validate NFPROTO_* family Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 109/185] net: stmmac: Wait a bit for the reset to take effect Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 110/185] net: mvpp2: clear BM pool before initialization Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 111/185] selftests: netdevsim: fix the udp_tunnel_nic test Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 112/185] fjes: fix memleaks in fjes_hw_setup Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 113/185] net: fec: fix the unhandled context fault from smmu Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 114/185] nbd: always initialize struct msghdr completely Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 115/185] btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume being deleted Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 116/185] btrfs: ref-verify: free ref cache before clearing mount opt Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 117/185] btrfs: tree-checker: fix inline ref size in error messages Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 118/185] btrfs: dont warn if discard range is not aligned to sector Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 119/185] btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 120/185] btrfs: dont abort filesystem when attempting to snapshot deleted subvolume Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 121/185] rbd: dont move requests to the running list on errors Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 122/185] exec: Fix error handling in begin_new_exec() Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 123/185] wifi: iwlwifi: fix a memory corruption Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 124/185] hv_netvsc: Calculate correct ring size when PAGE_SIZE is not 4 Kbytes Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 125/185] netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 126/185] netfilter: nf_tables: reject QUEUE/DROP verdict parameters Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 127/185] platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 128/185] ksmbd: fix global oob in ksmbd_nl_policy Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 129/185] firmware: arm_scmi: Check mailbox/SMT channel for consistency Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 130/185] xfs: read only mounts with fsopen mount API are busted Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 131/185] gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04 Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 132/185] cpufreq: intel_pstate: Refine computation of P-state for given frequency Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 133/185] drm: Dont unref the same fb many times by mistake due to deadlock handling Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 134/185] drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 135/185] drm/tidss: Fix atomic_flush check Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 136/185] drm/amd/display: Disable PSR-SU on Parade 0803 TCON again Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 137/185] platform/x86: intel-uncore-freq: Fix types in sysfs callbacks Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 138/185] drm/bridge: nxp-ptn3460: simplify some error checking Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 139/185] drm/amd/display: Port DENTIST hang and TDR fixes to OTG disable W/A Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 140/185] drm/amdgpu/pm: Fix the power source flag error Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 141/185] erofs: get rid of the remaining kmap_atomic() Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 142/185] erofs: fix lz4 inplace decompression Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 143/185] media: ov13b10: Support device probe in non-zero ACPI D state Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 144/185] media: ov13b10: Enable runtime PM before registering async sub-device Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 145/185] bus: mhi: ep: Do not allocate event ring element on stack Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 146/185] PM: core: Remove unnecessary (void *) conversions Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 147/185] PM: sleep: Fix possible deadlocks in core system-wide PM code Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 148/185] thermal: intel: hfi: Refactor enabling code into helper functions Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 149/185] thermal: intel: hfi: Disable an HFI instance when all its CPUs go offline Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 150/185] thermal: intel: hfi: Add syscore callbacks for system-wide PM Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 151/185] fs/pipe: move check to pipe_has_watch_queue() Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 152/185] pipe: wakeup wr_wait after setting max_usage Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 153/185] ARM: dts: qcom: sdx55: fix USB wakeup interrupt types Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 154/185] ARM: dts: samsung: exynos4210-i9100: Unconditionally enable LDO12 Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 155/185] ARM: dts: qcom: sdx55: fix pdc #interrupt-cells Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 156/185] ARM: dts: qcom: sdx55: fix USB DP/DM HS PHY interrupts Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 157/185] ARM: dts: qcom: sdx55: fix USB SS wakeup Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 158/185] dlm: use kernel_connect() and kernel_bind() Greg Kroah-Hartman
2024-01-29 17:05 ` [PATCH 6.1 159/185] serial: core: Provide port lock wrappers Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 160/185] serial: sc16is7xx: Use " Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 161/185] serial: sc16is7xx: fix unconditional activation of THRI interrupt Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 162/185] btrfs: zoned: factor out prepare_allocation_zoned() Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 163/185] btrfs: zoned: optimize hint byte for zoned allocator Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 164/185] drm/panel-edp: drm/panel-edp: Fix AUO B116XAK01 name and timing Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 165/185] Revert "powerpc/64s: Increase default stack size to 32KB" Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 166/185] drm/bridge: parade-ps8640: Wait for HPD when doing an AUX transfer Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 167/185] drm: panel-simple: add missing bus flags for Tianma tm070jvhg[30/33] Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 168/185] drm/bridge: sii902x: Use devm_regulator_bulk_get_enable() Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 169/185] drm/bridge: sii902x: Fix probing race issue Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 170/185] drm/bridge: sii902x: Fix audio codec unregistration Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 171/185] drm/bridge: parade-ps8640: Ensure bridge is suspended in .post_disable() Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 172/185] drm/bridge: parade-ps8640: Make sure we drop the AUX mutex in the error case Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 173/185] drm/exynos: fix accidental on-stack copy of exynos_drm_plane Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 174/185] drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 175/185] gpio: eic-sprd: Clear interrupt after set the interrupt type Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 176/185] block: Move checking GENHD_FL_NO_PART to bdev_add_partition() Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 177/185] drm/bridge: anx7625: Ensure bridge is suspended in disable() Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 178/185] spi: bcm-qspi: fix SFDP BFPT read by usig mspi read Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 179/185] spi: fix finalize message on error return Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 180/185] MIPS: lantiq: register smp_ops on non-smp platforms Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 181/185] cxl/region:Fix overflow issue in alloc_hpa() Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 182/185] mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 183/185] tick/sched: Preserve number of idle sleeps across CPU hotplug events Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 184/185] x86/entry/ia32: Ensure s32 is sign extended to s64 Greg Kroah-Hartman
2024-01-29 17:06 ` [PATCH 6.1 185/185] serial: core: fix kernel-doc for uart_port_unlock_irqrestore() Greg Kroah-Hartman
2024-01-29 19:27 ` [PATCH 6.1 000/185] 6.1.76-rc1 review SeongJae Park
2024-01-29 23:16 ` Shuah Khan
2024-01-30  0:13 ` Allen
2024-01-30  1:31 ` Daniel Díaz
2024-01-30 13:01   ` Jon Hunter
2024-01-30 15:10   ` Pavel Machek
2024-01-30  3:49 ` Florian Fainelli
2024-01-30  9:52 ` Shreeya Patel
2024-01-30 20:15 ` Sven Joachim
2024-01-31  9:12 ` Yann Sionneau

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=20240129170000.430957435@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=jack@suse.cz \
    --cc=patches@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.