Archive-only list for patches
 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,
	Jonathan Curley <jcurley@purestorage.com>,
	Anna Schumaker <anna.schumaker@oracle.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 023/349] NFSv4/flexfiles: Add data structure support for striped layouts
Date: Thu, 16 Jul 2026 15:29:17 +0200	[thread overview]
Message-ID: <20260716133033.818582988@linuxfoundation.org> (raw)
In-Reply-To: <20260716133033.287196923@linuxfoundation.org>

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

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

From: Jonathan Curley <jcurley@purestorage.com>

[ Upstream commit d442670c0f63c46b7f348f68fb2002af597708f2 ]

Adds a new struct nfs4_ff_layout_ds_stripe that represents a data
server stripe within a layout. A new dynamically allocated array of
this type has been added to nfs4_ff_layout_mirror and per stripe
configuration information has been moved from the mirror type to the
stripe based on the RFC.

Signed-off-by: Jonathan Curley <jcurley@purestorage.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
Stable-dep-of: 2c6bb3c40bc2 ("NFSv4/flexfiles: reject zero filehandle version count")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/nfs/flexfilelayout/flexfilelayout.c    |  149 ++++++++++++++++--------------
 fs/nfs/flexfilelayout/flexfilelayout.h    |   27 +++--
 fs/nfs/flexfilelayout/flexfilelayoutdev.c |   54 +++++-----
 3 files changed, 128 insertions(+), 102 deletions(-)

--- a/fs/nfs/flexfilelayout/flexfilelayout.c
+++ b/fs/nfs/flexfilelayout/flexfilelayout.c
@@ -183,13 +183,13 @@ static bool ff_mirror_match_fh(const str
 {
 	int i, j;
 
-	if (m1->fh_versions_cnt != m2->fh_versions_cnt)
+	if (m1->dss[0].fh_versions_cnt != m2->dss[0].fh_versions_cnt)
 		return false;
-	for (i = 0; i < m1->fh_versions_cnt; i++) {
+	for (i = 0; i < m1->dss[0].fh_versions_cnt; i++) {
 		bool found_fh = false;
-		for (j = 0; j < m2->fh_versions_cnt; j++) {
-			if (nfs_compare_fh(&m1->fh_versions[i],
-					&m2->fh_versions[j]) == 0) {
+		for (j = 0; j < m2->dss[0].fh_versions_cnt; j++) {
+			if (nfs_compare_fh(&m1->dss[0].fh_versions[i],
+					&m2->dss[0].fh_versions[j]) == 0) {
 				found_fh = true;
 				break;
 			}
@@ -210,7 +210,8 @@ ff_layout_add_mirror(struct pnfs_layout_
 
 	spin_lock(&inode->i_lock);
 	list_for_each_entry(pos, &ff_layout->mirrors, mirrors) {
-		if (memcmp(&mirror->devid, &pos->devid, sizeof(pos->devid)) != 0)
+		if (memcmp(&mirror->dss[0].devid, &pos->dss[0].devid,
+			   sizeof(pos->dss[0].devid)) != 0)
 			continue;
 		if (!ff_mirror_match_fh(mirror, pos))
 			continue;
@@ -238,30 +239,46 @@ ff_layout_remove_mirror(struct nfs4_ff_l
 	mirror->layout = NULL;
 }
 
-static struct nfs4_ff_layout_mirror *ff_layout_alloc_mirror(gfp_t gfp_flags)
+static struct nfs4_ff_layout_mirror *ff_layout_alloc_mirror(u32 dss_count,
+							    gfp_t gfp_flags)
 {
 	struct nfs4_ff_layout_mirror *mirror;
 
 	mirror = kzalloc(sizeof(*mirror), gfp_flags);
-	if (mirror != NULL) {
-		spin_lock_init(&mirror->lock);
-		refcount_set(&mirror->ref, 1);
-		INIT_LIST_HEAD(&mirror->mirrors);
+	if (mirror == NULL)
+		return NULL;
+
+	spin_lock_init(&mirror->lock);
+	refcount_set(&mirror->ref, 1);
+	INIT_LIST_HEAD(&mirror->mirrors);
+
+	mirror->dss_count = dss_count;
+	mirror->dss =
+		kcalloc(dss_count, sizeof(struct nfs4_ff_layout_ds_stripe),
+			gfp_flags);
+	if (mirror->dss == NULL) {
+		kfree(mirror);
+		return NULL;
 	}
+
 	return mirror;
 }
 
 static void ff_layout_free_mirror(struct nfs4_ff_layout_mirror *mirror)
 {
-	const struct cred *cred;
+	const struct cred	*cred;
+	int dss_id = 0;
 
 	ff_layout_remove_mirror(mirror);
-	kfree(mirror->fh_versions);
-	cred = rcu_access_pointer(mirror->ro_cred);
+
+	kfree(mirror->dss[dss_id].fh_versions);
+	cred = rcu_access_pointer(mirror->dss[dss_id].ro_cred);
 	put_cred(cred);
-	cred = rcu_access_pointer(mirror->rw_cred);
+	cred = rcu_access_pointer(mirror->dss[dss_id].rw_cred);
 	put_cred(cred);
-	nfs4_ff_layout_put_deviceid(mirror->mirror_ds);
+	nfs4_ff_layout_put_deviceid(mirror->dss[dss_id].mirror_ds);
+
+	kfree(mirror->dss);
 	kfree(mirror);
 }
 
@@ -371,8 +388,8 @@ static void ff_layout_sort_mirrors(struc
 
 	for (i = 0; i < fls->mirror_array_cnt - 1; i++) {
 		for (j = i + 1; j < fls->mirror_array_cnt; j++)
-			if (fls->mirror_array[i]->efficiency <
-			    fls->mirror_array[j]->efficiency)
+			if (fls->mirror_array[i]->dss[0].efficiency <
+			    fls->mirror_array[j]->dss[0].efficiency)
 				swap(fls->mirror_array[i],
 				     fls->mirror_array[j]);
 	}
@@ -426,35 +443,35 @@ ff_layout_alloc_lseg(struct pnfs_layout_
 	fls->mirror_array_cnt = mirror_array_cnt;
 	fls->stripe_unit = stripe_unit;
 
+	u32 dss_count = 0;
 	for (i = 0; i < fls->mirror_array_cnt; i++) {
 		struct nfs4_ff_layout_mirror *mirror;
 		struct cred *kcred;
 		const struct cred __rcu *cred;
 		kuid_t uid;
 		kgid_t gid;
-		u32 ds_count, fh_count, id;
-		int j;
+		u32 fh_count, id;
+		int j, dss_id = 0;
 
 		rc = -EIO;
 		p = xdr_inline_decode(&stream, 4);
 		if (!p)
 			goto out_err_free;
-		ds_count = be32_to_cpup(p);
+
+		dss_count = be32_to_cpup(p);
 
 		/* FIXME: allow for striping? */
-		if (ds_count != 1)
+		if (dss_count != 1)
 			goto out_err_free;
 
-		fls->mirror_array[i] = ff_layout_alloc_mirror(gfp_flags);
+		fls->mirror_array[i] = ff_layout_alloc_mirror(dss_count, gfp_flags);
 		if (fls->mirror_array[i] == NULL) {
 			rc = -ENOMEM;
 			goto out_err_free;
 		}
 
-		fls->mirror_array[i]->ds_count = ds_count;
-
 		/* deviceid */
-		rc = decode_deviceid(&stream, &fls->mirror_array[i]->devid);
+		rc = decode_deviceid(&stream, &fls->mirror_array[i]->dss[dss_id].devid);
 		if (rc)
 			goto out_err_free;
 
@@ -463,10 +480,10 @@ ff_layout_alloc_lseg(struct pnfs_layout_
 		p = xdr_inline_decode(&stream, 4);
 		if (!p)
 			goto out_err_free;
-		fls->mirror_array[i]->efficiency = be32_to_cpup(p);
+		fls->mirror_array[i]->dss[dss_id].efficiency = be32_to_cpup(p);
 
 		/* stateid */
-		rc = decode_pnfs_stateid(&stream, &fls->mirror_array[i]->stateid);
+		rc = decode_pnfs_stateid(&stream, &fls->mirror_array[i]->dss[dss_id].stateid);
 		if (rc)
 			goto out_err_free;
 
@@ -477,22 +494,22 @@ ff_layout_alloc_lseg(struct pnfs_layout_
 			goto out_err_free;
 		fh_count = be32_to_cpup(p);
 
-		fls->mirror_array[i]->fh_versions =
-			kcalloc(fh_count, sizeof(struct nfs_fh),
-				gfp_flags);
-		if (fls->mirror_array[i]->fh_versions == NULL) {
+		fls->mirror_array[i]->dss[dss_id].fh_versions =
+		    kcalloc(fh_count, sizeof(struct nfs_fh),
+			    gfp_flags);
+		if (fls->mirror_array[i]->dss[dss_id].fh_versions == NULL) {
 			rc = -ENOMEM;
 			goto out_err_free;
 		}
 
 		for (j = 0; j < fh_count; j++) {
 			rc = decode_nfs_fh(&stream,
-					   &fls->mirror_array[i]->fh_versions[j]);
+					   &fls->mirror_array[i]->dss[dss_id].fh_versions[j]);
 			if (rc)
 				goto out_err_free;
 		}
 
-		fls->mirror_array[i]->fh_versions_cnt = fh_count;
+		fls->mirror_array[i]->dss[dss_id].fh_versions_cnt = fh_count;
 
 		/* user */
 		rc = decode_name(&stream, &id);
@@ -523,19 +540,21 @@ ff_layout_alloc_lseg(struct pnfs_layout_
 		cred = RCU_INITIALIZER(kcred);
 
 		if (lgr->range.iomode == IOMODE_READ)
-			rcu_assign_pointer(fls->mirror_array[i]->ro_cred, cred);
+			rcu_assign_pointer(fls->mirror_array[i]->dss[dss_id].ro_cred, cred);
 		else
-			rcu_assign_pointer(fls->mirror_array[i]->rw_cred, cred);
+			rcu_assign_pointer(fls->mirror_array[i]->dss[dss_id].rw_cred, cred);
 
 		mirror = ff_layout_add_mirror(lh, fls->mirror_array[i]);
 		if (mirror != fls->mirror_array[i]) {
 			/* swap cred ptrs so free_mirror will clean up old */
 			if (lgr->range.iomode == IOMODE_READ) {
-				cred = xchg(&mirror->ro_cred, fls->mirror_array[i]->ro_cred);
-				rcu_assign_pointer(fls->mirror_array[i]->ro_cred, cred);
+				cred = xchg(&mirror->dss[dss_id].ro_cred,
+					    fls->mirror_array[i]->dss[dss_id].ro_cred);
+				rcu_assign_pointer(fls->mirror_array[i]->dss[dss_id].ro_cred, cred);
 			} else {
-				cred = xchg(&mirror->rw_cred, fls->mirror_array[i]->rw_cred);
-				rcu_assign_pointer(fls->mirror_array[i]->rw_cred, cred);
+				cred = xchg(&mirror->dss[dss_id].rw_cred,
+					    fls->mirror_array[i]->dss[dss_id].rw_cred);
+				rcu_assign_pointer(fls->mirror_array[i]->dss[dss_id].rw_cred, cred);
 			}
 			ff_layout_free_mirror(fls->mirror_array[i]);
 			fls->mirror_array[i] = mirror;
@@ -623,8 +642,8 @@ nfs4_ff_layoutstat_start_io(struct nfs4_
 	struct nfs4_flexfile_layout *ffl = FF_LAYOUT_FROM_HDR(mirror->layout);
 
 	nfs4_ff_start_busy_timer(&layoutstat->busy_timer, now);
-	if (!mirror->start_time)
-		mirror->start_time = now;
+	if (!mirror->dss[0].start_time)
+		mirror->dss[0].start_time = now;
 	if (mirror->report_interval != 0)
 		report_interval = (s64)mirror->report_interval * 1000LL;
 	else if (layoutstats_timer != 0)
@@ -679,8 +698,8 @@ nfs4_ff_layout_stat_io_start_read(struct
 	bool report;
 
 	spin_lock(&mirror->lock);
-	report = nfs4_ff_layoutstat_start_io(mirror, &mirror->read_stat, now);
-	nfs4_ff_layout_stat_io_update_requested(&mirror->read_stat, requested);
+	report = nfs4_ff_layoutstat_start_io(mirror, &mirror->dss[0].read_stat, now);
+	nfs4_ff_layout_stat_io_update_requested(&mirror->dss[0].read_stat, requested);
 	set_bit(NFS4_FF_MIRROR_STAT_AVAIL, &mirror->flags);
 	spin_unlock(&mirror->lock);
 
@@ -695,7 +714,7 @@ nfs4_ff_layout_stat_io_end_read(struct r
 		__u64 completed)
 {
 	spin_lock(&mirror->lock);
-	nfs4_ff_layout_stat_io_update_completed(&mirror->read_stat,
+	nfs4_ff_layout_stat_io_update_completed(&mirror->dss[0].read_stat,
 			requested, completed,
 			ktime_get(), task->tk_start);
 	set_bit(NFS4_FF_MIRROR_STAT_AVAIL, &mirror->flags);
@@ -710,8 +729,8 @@ nfs4_ff_layout_stat_io_start_write(struc
 	bool report;
 
 	spin_lock(&mirror->lock);
-	report = nfs4_ff_layoutstat_start_io(mirror , &mirror->write_stat, now);
-	nfs4_ff_layout_stat_io_update_requested(&mirror->write_stat, requested);
+	report = nfs4_ff_layoutstat_start_io(mirror, &mirror->dss[0].write_stat, now);
+	nfs4_ff_layout_stat_io_update_requested(&mirror->dss[0].write_stat, requested);
 	set_bit(NFS4_FF_MIRROR_STAT_AVAIL, &mirror->flags);
 	spin_unlock(&mirror->lock);
 
@@ -730,7 +749,7 @@ nfs4_ff_layout_stat_io_end_write(struct
 		requested = completed = 0;
 
 	spin_lock(&mirror->lock);
-	nfs4_ff_layout_stat_io_update_completed(&mirror->write_stat,
+	nfs4_ff_layout_stat_io_update_completed(&mirror->dss[0].write_stat,
 			requested, completed, ktime_get(), task->tk_start);
 	set_bit(NFS4_FF_MIRROR_STAT_AVAIL, &mirror->flags);
 	spin_unlock(&mirror->lock);
@@ -772,7 +791,7 @@ ff_layout_choose_ds_for_read(struct pnfs
 			continue;
 
 		if (check_device &&
-		    nfs4_test_deviceid_unavailable(&mirror->mirror_ds->id_node)) {
+		    nfs4_test_deviceid_unavailable(&mirror->dss[0].mirror_ds->id_node)) {
 			// reinitialize the error state in case if this is the last iteration
 			ds = ERR_PTR(-EINVAL);
 			continue;
@@ -881,7 +900,7 @@ retry:
 
 	mirror = FF_LAYOUT_COMP(pgio->pg_lseg, ds_idx);
 	pgm = &pgio->pg_mirrors[0];
-	pgm->pg_bsize = mirror->mirror_ds->ds_versions[0].rsize;
+	pgm->pg_bsize = mirror->dss[0].mirror_ds->ds_versions[0].rsize;
 
 	pgio->pg_mirror_idx = ds_idx;
 	return;
@@ -953,7 +972,7 @@ retry:
 			goto retry;
 		}
 		pgm = &pgio->pg_mirrors[i];
-		pgm->pg_bsize = mirror->mirror_ds->ds_versions[0].wsize;
+		pgm->pg_bsize = mirror->dss[0].mirror_ds->ds_versions[0].wsize;
 	}
 
 	if (NFS_SERVER(pgio->pg_inode)->flags &
@@ -2013,7 +2032,7 @@ select_ds_fh_from_commit(struct pnfs_lay
 	/* FIXME: Assume that there is only one NFS version available
 	 * for the DS.
 	 */
-	return &flseg->mirror_array[i]->fh_versions[0];
+	return &flseg->mirror_array[i]->dss[0].fh_versions[0];
 }
 
 static int ff_layout_initiate_commit(struct nfs_commit_data *data, int how)
@@ -2129,10 +2148,10 @@ static void ff_layout_cancel_io(struct p
 
 	for (idx = 0; idx < flseg->mirror_array_cnt; idx++) {
 		mirror = flseg->mirror_array[idx];
-		mirror_ds = mirror->mirror_ds;
+		mirror_ds = mirror->dss[0].mirror_ds;
 		if (IS_ERR_OR_NULL(mirror_ds))
 			continue;
-		ds = mirror->mirror_ds->ds;
+		ds = mirror->dss[0].mirror_ds->ds;
 		if (!ds)
 			continue;
 		ds_clp = ds->ds_clp;
@@ -2533,8 +2552,8 @@ ff_layout_encode_ff_layoutupdate(struct
 			      struct nfs4_ff_layout_mirror *mirror)
 {
 	struct nfs4_pnfs_ds_addr *da;
-	struct nfs4_pnfs_ds *ds = mirror->mirror_ds->ds;
-	struct nfs_fh *fh = &mirror->fh_versions[0];
+	struct nfs4_pnfs_ds *ds = mirror->dss[0].mirror_ds->ds;
+	struct nfs_fh *fh = &mirror->dss[0].fh_versions[0];
 	__be32 *p;
 
 	da = list_first_entry(&ds->ds_addrs, struct nfs4_pnfs_ds_addr, da_node);
@@ -2547,12 +2566,12 @@ ff_layout_encode_ff_layoutupdate(struct
 	xdr_encode_opaque(p, fh->data, fh->size);
 	/* ff_io_latency4 read */
 	spin_lock(&mirror->lock);
-	ff_layout_encode_io_latency(xdr, &mirror->read_stat.io_stat);
+	ff_layout_encode_io_latency(xdr, &mirror->dss[0].read_stat.io_stat);
 	/* ff_io_latency4 write */
-	ff_layout_encode_io_latency(xdr, &mirror->write_stat.io_stat);
+	ff_layout_encode_io_latency(xdr, &mirror->dss[0].write_stat.io_stat);
 	spin_unlock(&mirror->lock);
 	/* nfstime4 */
-	ff_layout_encode_nfstime(xdr, ktime_sub(ktime_get(), mirror->start_time));
+	ff_layout_encode_nfstime(xdr, ktime_sub(ktime_get(), mirror->dss[0].start_time));
 	/* bool */
 	p = xdr_reserve_space(xdr, 4);
 	*p = cpu_to_be32(false);
@@ -2599,7 +2618,7 @@ ff_layout_mirror_prepare_stats(struct pn
 	list_for_each_entry(mirror, &ff_layout->mirrors, mirrors) {
 		if (i >= dev_limit)
 			break;
-		if (IS_ERR_OR_NULL(mirror->mirror_ds))
+		if (IS_ERR_OR_NULL(mirror->dss[0].mirror_ds))
 			continue;
 		if (!test_and_clear_bit(NFS4_FF_MIRROR_STAT_AVAIL,
 					&mirror->flags) &&
@@ -2608,15 +2627,15 @@ ff_layout_mirror_prepare_stats(struct pn
 		/* mirror refcount put in cleanup_layoutstats */
 		if (!refcount_inc_not_zero(&mirror->ref))
 			continue;
-		dev = &mirror->mirror_ds->id_node; 
+		dev = &mirror->dss[0].mirror_ds->id_node;
 		memcpy(&devinfo->dev_id, &dev->deviceid, NFS4_DEVICEID4_SIZE);
 		devinfo->offset = 0;
 		devinfo->length = NFS4_MAX_UINT64;
 		spin_lock(&mirror->lock);
-		devinfo->read_count = mirror->read_stat.io_stat.ops_completed;
-		devinfo->read_bytes = mirror->read_stat.io_stat.bytes_completed;
-		devinfo->write_count = mirror->write_stat.io_stat.ops_completed;
-		devinfo->write_bytes = mirror->write_stat.io_stat.bytes_completed;
+		devinfo->read_count = mirror->dss[0].read_stat.io_stat.ops_completed;
+		devinfo->read_bytes = mirror->dss[0].read_stat.io_stat.bytes_completed;
+		devinfo->write_count = mirror->dss[0].write_stat.io_stat.ops_completed;
+		devinfo->write_bytes = mirror->dss[0].write_stat.io_stat.bytes_completed;
 		spin_unlock(&mirror->lock);
 		devinfo->layout_type = LAYOUT_FLEX_FILES;
 		devinfo->ld_private.ops = &layoutstat_ops;
--- a/fs/nfs/flexfilelayout/flexfilelayout.h
+++ b/fs/nfs/flexfilelayout/flexfilelayout.h
@@ -71,24 +71,31 @@ struct nfs4_ff_layoutstat {
 	struct nfs4_ff_busy_timer busy_timer;
 };
 
-struct nfs4_ff_layout_mirror {
-	struct pnfs_layout_hdr		*layout;
-	struct list_head		mirrors;
-	u32				ds_count;
-	u32				efficiency;
+struct nfs4_ff_layout_mirror;
+
+struct nfs4_ff_layout_ds_stripe {
+	struct nfs4_ff_layout_mirror   *mirror;
 	struct nfs4_deviceid		devid;
+	u32				efficiency;
 	struct nfs4_ff_layout_ds	*mirror_ds;
 	u32				fh_versions_cnt;
 	struct nfs_fh			*fh_versions;
 	nfs4_stateid			stateid;
 	const struct cred __rcu		*ro_cred;
 	const struct cred __rcu		*rw_cred;
-	refcount_t			ref;
-	spinlock_t			lock;
-	unsigned long			flags;
 	struct nfs4_ff_layoutstat	read_stat;
 	struct nfs4_ff_layoutstat	write_stat;
 	ktime_t				start_time;
+};
+
+struct nfs4_ff_layout_mirror {
+	struct pnfs_layout_hdr		*layout;
+	struct list_head		mirrors;
+	u32				dss_count;
+	struct nfs4_ff_layout_ds_stripe *dss;
+	refcount_t			ref;
+	spinlock_t			lock;
+	unsigned long			flags;
 	u32				report_interval;
 };
 
@@ -154,7 +161,7 @@ FF_LAYOUT_DEVID_NODE(struct pnfs_layout_
 	struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, idx);
 
 	if (mirror != NULL) {
-		struct nfs4_ff_layout_ds *mirror_ds = mirror->mirror_ds;
+		struct nfs4_ff_layout_ds *mirror_ds = mirror->dss[0].mirror_ds;
 
 		if (!IS_ERR_OR_NULL(mirror_ds))
 			return &mirror_ds->id_node;
@@ -183,7 +190,7 @@ ff_layout_no_read_on_rw(struct pnfs_layo
 static inline int
 nfs4_ff_layout_ds_version(const struct nfs4_ff_layout_mirror *mirror)
 {
-	return mirror->mirror_ds->ds_versions[0].version;
+	return mirror->dss[0].mirror_ds->ds_versions[0].version;
 }
 
 struct nfs4_ff_layout_ds *
--- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c
+++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
@@ -259,7 +259,7 @@ int ff_layout_track_ds_error(struct nfs4
 	if (status == 0)
 		return 0;
 
-	if (IS_ERR_OR_NULL(mirror->mirror_ds))
+	if (IS_ERR_OR_NULL(mirror->dss[0].mirror_ds))
 		return -EINVAL;
 
 	dserr = kmalloc(sizeof(*dserr), gfp_flags);
@@ -271,8 +271,8 @@ int ff_layout_track_ds_error(struct nfs4
 	dserr->length = length;
 	dserr->status = status;
 	dserr->opnum = opnum;
-	nfs4_stateid_copy(&dserr->stateid, &mirror->stateid);
-	memcpy(&dserr->deviceid, &mirror->mirror_ds->id_node.deviceid,
+	nfs4_stateid_copy(&dserr->stateid, &mirror->dss[0].stateid);
+	memcpy(&dserr->deviceid, &mirror->dss[0].mirror_ds->id_node.deviceid,
 	       NFS4_DEVICEID4_SIZE);
 
 	spin_lock(&flo->generic_hdr.plh_inode->i_lock);
@@ -287,9 +287,9 @@ ff_layout_get_mirror_cred(struct nfs4_ff
 	const struct cred *cred, __rcu **pcred;
 
 	if (iomode == IOMODE_READ)
-		pcred = &mirror->ro_cred;
+		pcred = &mirror->dss[0].ro_cred;
 	else
-		pcred = &mirror->rw_cred;
+		pcred = &mirror->dss[0].rw_cred;
 
 	rcu_read_lock();
 	do {
@@ -307,7 +307,7 @@ struct nfs_fh *
 nfs4_ff_layout_select_ds_fh(struct nfs4_ff_layout_mirror *mirror)
 {
 	/* FIXME: For now assume there is only 1 version available for the DS */
-	return &mirror->fh_versions[0];
+	return &mirror->dss[0].fh_versions[0];
 }
 
 void
@@ -315,7 +315,7 @@ nfs4_ff_layout_select_ds_stateid(const s
 		nfs4_stateid *stateid)
 {
 	if (nfs4_ff_layout_ds_version(mirror) == 4)
-		nfs4_stateid_copy(stateid, &mirror->stateid);
+		nfs4_stateid_copy(stateid, &mirror->dss[0].stateid);
 }
 
 static bool
@@ -324,23 +324,23 @@ ff_layout_init_mirror_ds(struct pnfs_lay
 {
 	if (mirror == NULL)
 		goto outerr;
-	if (mirror->mirror_ds == NULL) {
+	if (mirror->dss[0].mirror_ds == NULL) {
 		struct nfs4_deviceid_node *node;
 		struct nfs4_ff_layout_ds *mirror_ds = ERR_PTR(-ENODEV);
 
 		node = nfs4_find_get_deviceid(NFS_SERVER(lo->plh_inode),
-				&mirror->devid, lo->plh_lc_cred,
+				&mirror->dss[0].devid, lo->plh_lc_cred,
 				GFP_KERNEL);
 		if (node)
 			mirror_ds = FF_LAYOUT_MIRROR_DS(node);
 
 		/* check for race with another call to this function */
-		if (cmpxchg(&mirror->mirror_ds, NULL, mirror_ds) &&
+		if (cmpxchg(&mirror->dss[0].mirror_ds, NULL, mirror_ds) &&
 		    mirror_ds != ERR_PTR(-ENODEV))
 			nfs4_put_deviceid_node(node);
 	}
 
-	if (IS_ERR(mirror->mirror_ds))
+	if (IS_ERR(mirror->dss[0].mirror_ds))
 		goto outerr;
 
 	return true;
@@ -379,7 +379,7 @@ nfs4_ff_layout_prepare_ds(struct pnfs_la
 	if (!ff_layout_init_mirror_ds(lseg->pls_layout, mirror))
 		goto noconnect;
 
-	ds = mirror->mirror_ds->ds;
+	ds = mirror->dss[0].mirror_ds->ds;
 	if (READ_ONCE(ds->ds_clp))
 		goto out;
 	/* matching smp_wmb() in _nfs4_pnfs_v3/4_ds_connect */
@@ -388,10 +388,10 @@ nfs4_ff_layout_prepare_ds(struct pnfs_la
 	/* FIXME: For now we assume the server sent only one version of NFS
 	 * to use for the DS.
 	 */
-	status = nfs4_pnfs_ds_connect(s, ds, &mirror->mirror_ds->id_node,
+	status = nfs4_pnfs_ds_connect(s, ds, &mirror->dss[0].mirror_ds->id_node,
 			     dataserver_timeo, dataserver_retrans,
-			     mirror->mirror_ds->ds_versions[0].version,
-			     mirror->mirror_ds->ds_versions[0].minor_version);
+			     mirror->dss[0].mirror_ds->ds_versions[0].version,
+			     mirror->dss[0].mirror_ds->ds_versions[0].minor_version);
 
 	/* connect success, check rsize/wsize limit */
 	if (!status) {
@@ -404,10 +404,10 @@ nfs4_ff_layout_prepare_ds(struct pnfs_la
 		max_payload =
 			nfs_block_size(rpc_max_payload(ds->ds_clp->cl_rpcclient),
 				       NULL);
-		if (mirror->mirror_ds->ds_versions[0].rsize > max_payload)
-			mirror->mirror_ds->ds_versions[0].rsize = max_payload;
-		if (mirror->mirror_ds->ds_versions[0].wsize > max_payload)
-			mirror->mirror_ds->ds_versions[0].wsize = max_payload;
+		if (mirror->dss[0].mirror_ds->ds_versions[0].rsize > max_payload)
+			mirror->dss[0].mirror_ds->ds_versions[0].rsize = max_payload;
+		if (mirror->dss[0].mirror_ds->ds_versions[0].wsize > max_payload)
+			mirror->dss[0].mirror_ds->ds_versions[0].wsize = max_payload;
 		goto out;
 	}
 noconnect:
@@ -430,7 +430,7 @@ ff_layout_get_ds_cred(struct nfs4_ff_lay
 {
 	const struct cred *cred;
 
-	if (mirror && !mirror->mirror_ds->ds_versions[0].tightly_coupled) {
+	if (mirror && !mirror->dss[0].mirror_ds->ds_versions[0].tightly_coupled) {
 		cred = ff_layout_get_mirror_cred(mirror, range->iomode);
 		if (!cred)
 			cred = get_cred(mdscred);
@@ -453,7 +453,7 @@ struct rpc_clnt *
 nfs4_ff_find_or_create_ds_client(struct nfs4_ff_layout_mirror *mirror,
 				 struct nfs_client *ds_clp, struct inode *inode)
 {
-	switch (mirror->mirror_ds->ds_versions[0].version) {
+	switch (mirror->dss[0].mirror_ds->ds_versions[0].version) {
 	case 3:
 		/* For NFSv3 DS, flavor is set when creating DS connections */
 		return ds_clp->cl_rpcclient;
@@ -564,11 +564,11 @@ static bool ff_read_layout_has_available
 	for (idx = 0; idx < FF_LAYOUT_MIRROR_COUNT(lseg); idx++) {
 		mirror = FF_LAYOUT_COMP(lseg, idx);
 		if (mirror) {
-			if (!mirror->mirror_ds)
+			if (!mirror->dss[0].mirror_ds)
 				return true;
-			if (IS_ERR(mirror->mirror_ds))
+			if (IS_ERR(mirror->dss[0].mirror_ds))
 				continue;
-			devid = &mirror->mirror_ds->id_node;
+			devid = &mirror->dss[0].mirror_ds->id_node;
 			if (!nfs4_test_deviceid_unavailable(devid))
 				return true;
 		}
@@ -585,11 +585,11 @@ static bool ff_rw_layout_has_available_d
 
 	for (idx = 0; idx < FF_LAYOUT_MIRROR_COUNT(lseg); idx++) {
 		mirror = FF_LAYOUT_COMP(lseg, idx);
-		if (!mirror || IS_ERR(mirror->mirror_ds))
+		if (!mirror || IS_ERR(mirror->dss[0].mirror_ds))
 			return false;
-		if (!mirror->mirror_ds)
+		if (!mirror->dss[0].mirror_ds)
 			continue;
-		devid = &mirror->mirror_ds->id_node;
+		devid = &mirror->dss[0].mirror_ds->id_node;
 		if (nfs4_test_deviceid_unavailable(devid))
 			return false;
 	}



  parent reply	other threads:[~2026-07-16 14:20 UTC|newest]

Thread overview: 355+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-16 13:28 [PATCH 6.12 000/349] 6.12.96-rc1 review Greg Kroah-Hartman
2026-07-16 13:28 ` [PATCH 6.12 001/349] bpf, arm64: Reject out-of-range B.cond targets Greg Kroah-Hartman
2026-07-16 13:28 ` [PATCH 6.12 002/349] nfsd: fix file change detection in CB_GETATTR Greg Kroah-Hartman
2026-07-16 13:28 ` [PATCH 6.12 003/349] nfsd: release layout stid on setlease failure Greg Kroah-Hartman
2026-07-16 13:28 ` [PATCH 6.12 004/349] userfaultfd: gate must_wait writability check on pte_present() Greg Kroah-Hartman
2026-07-16 13:28 ` [PATCH 6.12 005/349] perf: Fix dangling cgroup pointer in cpuctx backport Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 006/349] bcachefs: avoid truncating fiemap extent length Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 007/349] drm/amd: Fix set but not used warnings Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 008/349] gpio: rockchip: change the GPIO version judgment logic Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 009/349] gpio: rockchip: teardown bugs and resource leaks Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 010/349] gpio: rockchip: fix generic IRQ chip leak on remove Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 011/349] mm/vmalloc: take vmap_purge_lock in shrinker Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 012/349] device property: initialize the remaining fields of fwnode_handle in fwnode_init() Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 013/349] f2fs: validate orphan inode entry count Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 014/349] f2fs: atomic: fix UAF issue on f2fs_inode_info.atomic_inode Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 015/349] f2fs: bound i_inline_xattr_size for non-inline-xattr inodes Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 016/349] f2fs: fix potential deadlock in f2fs_balance_fs() Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 017/349] f2fs: fix potential deadlock in gc_merge path of f2fs_balance_fs() Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 018/349] f2fs: fix listxattr handling of corrupted xattr entries Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 019/349] fbdev: fbcon: fix out-of-bounds read in err_out of fbcon_do_set_font() Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 020/349] nfsd: add nfsd_file_{get,put} to nfs_to nfsd_localio_operations Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 021/349] nfs_common: rename functions that invalidate LOCALIO nfs_clients Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 022/349] NFSv4/flexfiles: Remove cred local variable dependency Greg Kroah-Hartman
2026-07-16 13:29 ` Greg Kroah-Hartman [this message]
2026-07-16 13:29 ` [PATCH 6.12 024/349] NFSv4/flexfiles: reject zero filehandle version count Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 025/349] locking/rtmutex: Make sure we wake anything on the wake_q when we release the lock->wait_lock Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 026/349] apparmor: advertise the tcp fast open fix is applied Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 027/349] nfsd: move name lookup out of nfsd4_list_rec_dir() Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 028/349] nfsd: change nfs4_client_to_reclaim() to allocate data Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 029/349] bonding: fix xfrm offload feature setup on active-backup mode Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 030/349] block: add a store_limit operations for sysfs entries Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 031/349] block: fix queue freeze vs limits lock order in sysfs store methods Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 032/349] mm/khugepaged: write all dirty file folios when collapsing Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 033/349] perf trace beauty fcntl: Fix build with older kernel headers Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 034/349] ACPI: CPPC: Suppress UBSAN warning caused by field misuse Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 035/349] ACPI: NFIT: core: Fix possible NULL pointer dereference Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 036/349] platform/x86: intel-hid: Protect ACPI notify handler against recursion Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 037/349] LoongArch: Add PIO for early access before ACPI PCI root register Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 038/349] rust: Kbuild: set frame-pointer llvm module flag for CONFIG_FRAME_POINTER Greg Kroah-Hartman
2026-07-16 15:59   ` Miguel Ojeda
2026-07-16 13:29 ` [PATCH 6.12 039/349] perf/core: Detach event groups during remove_on_exec Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 040/349] rust: kasan: KASAN+RUST requires clang Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 041/349] drm/i915: ensure segment offset never exceeds allowed max Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 042/349] usb: gadget: function: rndis: add length check to response query Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 043/349] usb: gadget: function: rndis: add length check for header Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 044/349] iio: accel: bmc150: clamp the device-reported FIFO frame count Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 045/349] iio: accel: kxsd9: fix runtime PM imbalance on write_raw() error Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 046/349] iio: adc: lpc32xx: Initialize completion before requesting IRQ Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 047/349] iio: adc: spear: " Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 048/349] iio: adc: ti-ads1119: fix PM reference leak in buffer preenable Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 049/349] iio: adc: ti-ads124s08: Return reset GPIO lookup errors Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 050/349] iio: backend: fix uninitialized data in debugfs Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 051/349] iio: chemical: scd30: Cleanup initializations and fix sign-extension bug Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 052/349] iio: common: st_sensors: honour channel endianness in read_axis_data Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 053/349] iio: event: Fix event FIFO reset race Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 054/349] iio: gyro: bmg160: bail out when bandwidth/filter is not in table Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 055/349] iio: gyro: bmg160: wait full startup time after mode change at probe Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 056/349] iio: imu: adis: add IRQF_NO_THREAD to non-FIFO trigger IRQ Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 057/349] iio: imu: bmi160: add IRQF_NO_THREAD to data-ready " Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 058/349] iio: imu: inv_icm42600: fix timestamp clock period by using lower value Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 059/349] iio: imu: inv_icm42600: fix timestamping by limiting FIFO reading Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 060/349] iio: imu: st_lsm6dsx: deselect shub page before reading whoami Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 061/349] iio: light: al3010: fix incorrect scale for the highest gain range Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 062/349] iio: light: gp2ap002: fix runtime PM leak on read error Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 063/349] iio: light: opt3001: fix missing state reset on timeout Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 064/349] iio: light: tsl2591: return actual error from probe IRQ failure Greg Kroah-Hartman
2026-07-16 13:29 ` [PATCH 6.12 065/349] iio: light: veml6030: fix channel type when pushing events Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 066/349] iio: magnetometer: ak8975: Add missed pm_runtime_put_autosuspend() call Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 067/349] iio: resolver: ad2s1210: notify trigger and clear state on fault read error Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 068/349] iio: temperature: Build mlx90635 with CONFIG_MLX90635 Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 069/349] iio: temperature: ltc2983: Fix n_wires default bypassing rotation check Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 070/349] iio: temperature: ltc2983: Fix reinit_completion() called after conversion start Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 071/349] ALSA: virtio: Add missing 384 kHz PCM rate mapping Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 072/349] ALSA: virtio: Validate control metadata from the device Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 073/349] ALSA: ymfpci: check snd_ctl_new1() return value Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 074/349] ALSA: caiaq: fix out-of-bounds read in the Traktor Kontrol S4 input parser Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 075/349] ALSA: cmipci: check snd_ctl_new1() return value Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 076/349] ALSA: es1938: " Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 077/349] ALSA: firewire: isight: bound the sample count to the packet payload Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 078/349] ALSA: gus: check snd_ctl_new1() return value Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 079/349] ALSA: ice1712: " Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 080/349] ALSA: seq: Fix uninitialised heap leak in snd_seq_event_dup() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 081/349] ALSA: usb-audio: avoid kobject path lookup in DualSense match Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 082/349] ALSA: usb-audio: Propagate errors in scarlett_ctl_enum_put() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 083/349] ALSA: usb-audio: Propagate US-16x08 write errors in route/mix EQ-switch put callbacks Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 084/349] ALSA: usb-audio: Roll back quirk control caches on write errors Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 085/349] ALSA: usb-audio: Update Babyface Pro control caches only after successful writes Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 086/349] ALSA: usb-audio: Update US-16x08 EQ/comp shadow state " Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 087/349] vfio/pci: Use a private flag to prevent power state change with VFs Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 088/349] vfio/pci: Latch disable_idle_d3 per device Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 089/349] vfio/pci: Release the VGA arbiter client on register_device() failure Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 090/349] vfio/pci: Fix racy bitfields and tighten struct layout Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 091/349] vfio: prevent infinite loop in vfio_mig_get_next_state() on blocked arc Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 092/349] vfio: Remove device debugfs before releasing devres Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 093/349] Bluetooth: btusb: Add USB ID 2c4e:0128 for Mercusys MA60XNB Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 094/349] Bluetooth: btusb: fix use-after-free on registration failure Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 095/349] Bluetooth: btusb: fix use-after-free on marvell probe failure Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 096/349] Bluetooth: btusb: fix wakeup source leak on " Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 097/349] binder: fix UAF in binder_thread_release() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 098/349] binder: fix UAF in binder_free_transaction() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 099/349] usb: xhci: Fix sleep in atomic context in xhci_free_streams() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 100/349] usb: typec: tcpci_rt1711h: unregister TCPCI port with devres Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 101/349] PCI: loongson: Override PCIe bridge supported speeds for Loongson-3C6000 series Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 102/349] PCI: altera: Do not dispose parent IRQ mapping Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 103/349] PCI: host-common: Request bus reassignment when not probe-only Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 104/349] PCI: imx6: Fix IMX6SX_GPR12_PCIE_TEST_POWERDOWN handling Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 105/349] mm/damon/ops-common: handle extreme intervals in damon_hot_score() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 106/349] netfilter: ipset: fix race between dump and ip_set_list resize Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 107/349] virtio_pci: fix vq info pointer lookup via wrong index Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 108/349] virtio-mmio: fix device release warning on module unload Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 109/349] hwrng: virtio: clamp device-reported used.len at copy_data() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 110/349] USB: chaoskey: Fix slab-use-after-free in chaoskey_release() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 111/349] usb: dwc3: run gadget disconnect from sleepable suspend context Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 112/349] 6lowpan: fix NHC entry use-after-free on error path Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 113/349] tipc: fix out-of-bounds read in broadcast Gap ACK blocks Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 114/349] staging: vme_user: bound slave read/write to the kern_buf size Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 115/349] smb: client: restrict implied bcc[0] exemption to responses without data area Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 116/349] staging: vme_user: fix location monitor leak in fake bridge Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 117/349] staging: vme_user: fix location monitor leak in tsi148 bridge Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 118/349] media: staging: ipu3-imgu: Add range check for imgu_css_cfg_acc_stripe Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 119/349] staging: media: atomisp: reduce load_primary_binaries() stack usage Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 120/349] staging: rtl8723bs: fix heap buffer overflow in rtw_cfg80211_set_wpa_ie() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 121/349] staging: rtl8723bs: fix WEP length underflow and OOB read in OnAuth() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 122/349] staging: rtl8723bs: fix OOB read in OnAssocRsp() IE loop Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 123/349] staging: rtl8723bs: fix OOB read in update_beacon_info() " Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 124/349] staging: rtl8723bs: fix OOB reads in IE loops in issue_assocreq() and join_cmd_hdl() Greg Kroah-Hartman
2026-07-16 13:30 ` [PATCH 6.12 125/349] staging: rtl8723bs: fix OOB reads in is_ap_in_tkip() IE loop Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 126/349] staging: rtl8723bs: fix OOB write in HT_caps_handler() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 127/349] crypto: amlogic - avoid double cleanup in meson_crypto_probe() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 128/349] ksmbd: fix use-after-free of a deferred file_lock on SMB2_CLOSE then SMB2_CANCEL Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 129/349] net: af_key: initialize alg_key_len for IPComp states Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 130/349] audit: Fix data races of skb_queue_len() readers on audit_queue Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 131/349] Bluetooth: MGMT: Fix UAF of hci_conn_params in add_device_complete Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 132/349] coresight: etb10: restore atomic_t for shared reading state Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 133/349] debugobjects: Plug race against a concurrent OOM disable Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 134/349] fs/ntfs3: validate Dirty Page Table capacity in log_replay copy_lcns Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 135/349] NTB: epf: Avoid calling pci_irq_vector() from hardirq context Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 136/349] gpio: eic-sprd: use raw_spinlock_t in the irq startup path Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 137/349] io_uring/io-wq: re-check IO_WQ_BIT_EXIT for each linked work item Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 138/349] netpoll: fix a use-after-free on shutdown path Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 139/349] ipv4: igmp: remove multicast group from hash table on device destruction Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 140/349] net: ipv4: bound TCP reordering sysctl writes and MTU probe sizes Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 141/349] mfd: cros_ec: Delay dev_set_drvdata() until probe success Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 142/349] mm/shrinker: do not hold RCU lock in shrinker_debugfs_count_show() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 143/349] mm: shrinker: fix shrinker_info teardown race with expansion Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 144/349] mm: shrinker: fix NULL pointer dereference in debugfs Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 145/349] mm/swap: add cond_resched() in swap_reclaim_full_clusters to prevent softlockup Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 146/349] netfilter: ctnetlink: use nf_ct_exp_net() in expectation dump Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 147/349] netfilter: handle unreadable frags Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 148/349] netfilter: ebtables: module names must be null-terminated Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 149/349] netfilter: ebtables: terminate table name before find_table_lock() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 150/349] Bluetooth: btmtksdio: fix infinite loop in btmtksdio_txrx_work() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 151/349] Bluetooth: bnep: pin L2CAP connection during netdev registration Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 152/349] Bluetooth: btnxpuart: Fix out-of-bounds firmware read in nxp_recv_fw_req_v3() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 153/349] Bluetooth: fix UAF in bt_accept_dequeue() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 154/349] Bluetooth: hci_uart: clear HCI_UART_SENDING when write_work is canceled Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 155/349] Bluetooth: ISO: avoid NULL deref of conn in iso_conn_big_sync() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 156/349] Bluetooth: L2CAP: validate option length before reading conf opt value Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 157/349] fs/ntfs3: rename ni_readpage_cmpr into ni_read_folio_cmpr Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 158/349] fs/ntfs3: fsync files by syncing parent inodes Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 159/349] fs/ntfs3: zero-fill folios beyond i_valid in ntfs_read_folio() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 160/349] fs/ntfs3: fix missing run load for vcn0 in attr_data_get_block_locked() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 161/349] coresight: ultrasoc-smb: Fix OOB write in smb_sync_perf_buffer() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 162/349] smb/client: Fix error code in smb2_aead_req_alloc() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 163/349] ksmbd: add permission checks for FSCTL_DUPLICATE_EXTENTS_TO_FILE Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 164/349] ksmbd: add a permission check for FSCTL_SET_ZERO_DATA Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 165/349] ksmbd: serialize QUERY_DIRECTORY requests per file Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 166/349] ksmbd: fix UAF of struct file_lock in SMB2_LOCK deferred-lock cancellation Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 167/349] ksmbd: require source read access for duplicate extents Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 168/349] ksmbd: add a WRITE_DAC/WRITE_OWNER check to SMB2 SET_INFO SECURITY Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 169/349] ksmbd: run set info with opener credentials Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 170/349] ksmbd: enforce FILE_READ_ATTRIBUTES on SMB_FIND_FILE_POSIX_INFORMATION Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 171/349] ksmbd: add per-handle permission check to FILE_LINK_INFORMATION Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 172/349] ksmbd: use opener credentials for delete-on-close Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 173/349] ksmbd: use opener credentials for ADS I/O Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 174/349] smb: client: fix query directory replay double-free Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 175/349] smb: client: fix query_info() " Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 176/349] smb: client: fix double-free in SMB2_ioctl() replay Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 177/349] smb: client: fix change notify replay double-free Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 178/349] smb: client: fix double-free in SMB2_flush() replay Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 179/349] smb: client: fix double-free in SMB2_open() replay Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 180/349] smb: client: fix double-free in SMB2_close() replay Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 181/349] smb: client: Fix next buffer leak in receive_encrypted_standard() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 182/349] smb: client: use unaligned reads in parse_posix_ctxt() Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 183/349] smb: client: harden POSIX SID length parsing Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 184/349] smb: client: fix atime clamp check in read completion Greg Kroah-Hartman
2026-07-16 13:31 ` [PATCH 6.12 185/349] smb: client: mask server-provided mode to 07777 in modefromsid Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 186/349] writeback: fix race between cgroup_writeback_umount() and inode_switch_wbs() Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 187/349] OPP: of: Fix potential memory leak in opp_parse_supplies() Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 188/349] cpufreq: qcom-cpufreq-hw: Fix possible double free Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 189/349] firmware_loader: fix device reference leak in firmware_upload_register() Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 190/349] cpufreq: intel_pstate: Sync policy->cur during CPU offline Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 191/349] sched/rt: Have RT_PUSH_IPI be default off for non PREEMPT_RT Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 192/349] cpufreq: Fix hotplug-suspend race during reboot Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 193/349] cpufreq: pcc: fix use-after-free and double free in _OSC evaluation Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 194/349] posix-cpu-timers: Fix pid refcount leak in do_cpu_nanosleep() error path Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 195/349] time/jiffies: Register jiffies clocksource before usage Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 196/349] clocksource/drivers/timer-tegra186: Fix support for multiple watchdog instances Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 197/349] perf/arm-cmn: Fix DVM node events Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 198/349] X.509: Fix validation of ASN.1 certificate header Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 199/349] mm/slab: do not limit zeroing to orig_size when only red zoning is enabled Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 200/349] tools/mm/slabinfo: Fix trace disable logic inversion Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 201/349] tools/mm/slabinfo: fix total_objects attribute name Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 202/349] HID: hid-goodix-spi: validate report size to prevent stack buffer overflow Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 203/349] HID: wacom: stop hardware after post-start probe failures Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 204/349] HID: letsketch: fix UAF on inrange_timer at driver unbind Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 205/349] HID: lg-g15: cancel pending work on remove to fix a use-after-free Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 206/349] HID: sensor-hub: Add sensor_hub_input_attr_read_values() for multi-byte reads Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 207/349] hfs/hfsplus: zero-initialize buffer in hfs_bnode_read Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 208/349] nilfs2: reject CLEAN_SEGMENTS ioctl with out-of-range segment numbers Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 209/349] media: mtk-jpeg: cancel workqueue on release for supported platforms only Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 210/349] serial: 8250_mid: Disable DMA for selected platforms Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 211/349] xfs: use null daddr for unset first bad log block Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 212/349] xfs: release dquot buffer after dqflush failure Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 213/349] xfs: fix unreachable BIGTIME check in dquot flush validation Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 214/349] xfs: fix pointer arithmetic error on 32-bit systems Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 215/349] xfs: fix exchmaps reservation limit check Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 216/349] bpf: Reject fragmented frames in devmap Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 217/349] bpf: Restore sysctl new-value from 1 to 0 Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 218/349] bpf: Validate BTF repeated field counts before expansion Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 219/349] net: usb: kalmia: bound RX frame length in kalmia_rx_fixup() Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 220/349] usb: cdc_acm: Add quirk for Uniden BC125AT scanner Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 221/349] usb: cdnsp: fix stream context array leak in cdnsp_alloc_stream_info() Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 222/349] USB: core: add USB_QUIRK_NO_LPM for VIA Labs USB 2.0 hub Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 223/349] usb: dwc3: meson-g12a: fix refcount leak in dwc3_meson_g12a_resume() Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 224/349] usb: free iso schedules on failed submit Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 225/349] usb: gadget: composite: fix dead empty check in the USB_DT_OTG handler Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 226/349] usb: gadget: udc: Fix use-after-free in gadget_match_driver Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 227/349] usb: gadget: f_printer: take kref only for successful open Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 228/349] USB: idmouse: fix use-after-free on disconnect race Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 229/349] USB: ldusb: " Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 230/349] USB: iowarrior: fix use-after-free on disconnect Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 231/349] USB: quirks: add NO_LPM for the Samsung T5 EVO Portable SSD Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 232/349] USB: legousbtower: fix use-after-free on disconnect race Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 233/349] usb: sl811-hcd: disable controller wakeup on remove Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 234/349] USB: storage: include US_FL_NO_SAME in quirks mask Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 235/349] USB: misc: uss720: unregister parport on probe failure Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 236/349] usb: mtu3: unmap request DMA on queue failure Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 237/349] USB: serial: keyspan_pda: fix information leak Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 238/349] USB: serial: option: add Telit Cinterion FE990D50 compositions Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 239/349] USB: serial: digi_acceleport: fix broken rx after throttle Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 240/349] USB: serial: digi_acceleport: fix hard lockup on disconnect Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 241/349] USB: serial: digi_acceleport: fix write buffer corruption Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 242/349] USB: ulpi: fix memory leak on registration failure Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 243/349] USB: usb-storage: ene_ub6250: restore media-ready check Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 244/349] usbip: tools: support SuperSpeedPlus devices Greg Kroah-Hartman
2026-07-16 13:32 ` [PATCH 6.12 245/349] usbip: vudc: fix NULL deref in vep_dequeue() Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 246/349] usb: typec: anx7411: use devm_pm_runtime_enable() Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 247/349] usb: typec: class: drop PD lookup reference Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 248/349] usb: typec: tcpm: Fix VDM type for Enter Mode commands Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 249/349] usb: typec: tcpm: Validate SVID index in svdm_consume_modes() Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 250/349] usb: typec: ucsi: Invert DisplayPort role assignment Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 251/349] usb: typec: ucsi: Pass full DP config payload in SET_NEW_CAM for DP alt mode Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 252/349] usb: typec: ucsi: ccg: Fix use-after-free of ucsi on remove Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 253/349] usb: typec: ucsi: cancel pending work on system suspend Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 254/349] usb: gadget: f_fs: Fix DMA fence leak Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 255/349] block: skip sync_blockdev() on surprise removal in bdev_mark_dead() Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 256/349] x86,fs/resctrl: Prevent out-of-bounds access while offlining CPU when SNC enabled Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 257/349] PCI: Always lift 2.5GT/s restriction in PCIe failed link retraining Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 258/349] udf: validate free block extents against the partition length Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 259/349] udf: validate VAT header length against the VAT inode size Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 260/349] udf: validate sparing table length as an entry count, not a byte count Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 261/349] hwrng: jh7110 - fix refcount leak in starfive_trng_read() Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 262/349] nvme: target: rdma: fix ndev refcount leak on queue connect Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 263/349] dm-ioctl: report an error if a device has no table Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 264/349] nvme-multipath: set BIO_REMAPPED on bios remapped to per-path namespace disks Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 265/349] nvmet: fix pre-auth out-of-bounds heap read in Discovery Get Log Page Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 266/349] nvmet-auth: validate reply message payload bounds against transfer length Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 267/349] btrfs: do not trim a device which is not writeable Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 268/349] partitions: aix: bound the pp_count scan to the ppe array Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 269/349] isofs: bound Rock Ridge symlink components to the SL record Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 270/349] crypto: af_alg - Remove zero-copy support from skcipher and aead Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 271/349] crypto: caam - use print_hex_dump_devel to guard key hex dumps Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 272/349] crypto: caam - use print_hex_dump_devel to guard key hex dumps again Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 273/349] crypto: ecc - Fix carry overflow in vli multiplication Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 274/349] crypto: pcrypt - restore callback for non-parallel fallback Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 275/349] crypto: tegra - fix refcount leak in tegra_se_host1x_submit() Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 276/349] crypto: ccp - Do not initialize SNP for SEV ioctls Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 277/349] crypto: ccp - Do not initialize SNP for ioctl(SNP_COMMIT) Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 278/349] crypto: ccp - Do not initialize SNP for ioctl(SNP_VLEK_LOAD) Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 279/349] crypto: drbg - Fix returning success on failure in CTR_DRBG Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 280/349] crypto: drbg - Fix drbg_max_addtl() on 64-bit kernels Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 281/349] crypto: drbg - Fix the fips_enabled priority boost Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 282/349] crypto: qat - keep VFs enabled during reset Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 283/349] crypto: qat - notify fatal error before AER reset preparation Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 284/349] crypto: qat - protect service table iterations with service_lock Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 285/349] crypto: qat - validate RSA CRT component lengths Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 286/349] crypto: talitos - use dma_sync_single_for_cpu() before reading descriptor header Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 287/349] crypto: talitos - add chaining of arbitrary number of descriptor for the SEC1 Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 288/349] crypto: talitos - move dma unmapping code in flush_channel() into a standalone dma_unmap_request() function Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 289/349] crypto: talitos - move dma mapping code in talitos_submit() into a standalone dma_map_request() function Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 290/349] crypto: talitos - move code in current_desc_hdr() into a standalone function Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 291/349] crypto: talitos/hash - prepare SEC1 descriptor chaining, remove additional descriptor Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 292/349] crypto: talitos/hash - use descriptor chaining for SEC1 instead of workqueue Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 293/349] crypto: talitos/hash - drop workqueue mechanism for SEC1 Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 294/349] crypto: talitos/hash - rename first_desc/last_desc to first_request/last_request Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 295/349] crypto: talitos/hash - remove useless wrapper Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 296/349] crypto: talitos/hash - fix SEC2 64k - 1 ahash request limitation Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 297/349] arm64: fpsimd: Fix type mismatch in sme_{save,load}_state() Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 298/349] spi: fsl-lpspi: replace dmaengine_terminate_all() with dmaengine_terminate_sync() Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 299/349] spi: fsl-lpspi: terminate the RX channel on TX prepare failure path Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 300/349] EDAC/i10nm: Dont fail probing if ADXL is missing Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 301/349] watchdog: apple: Add "apple,t8103-wdt" compatible Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 302/349] regulator: scmi: fix of_node refcount leak in scmi_regulator_probe() Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 303/349] i2c: core: fix hang on adapter registration failure Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 304/349] tracing: Prevent out-of-bounds read in glob matching Greg Kroah-Hartman
2026-07-16 13:33 ` [PATCH 6.12 305/349] audit: fix potential integer overflow in audit_log_n_hex() Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 306/349] NFSv4: include MAY_WRITE in open permission mask for O_TRUNC Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 307/349] module: decompress: check return value of module_extend_max_pages() Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 308/349] exfat: bound uniname advance in exfat_find_dir_entry() Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 309/349] NTB: epf: Fix request_irq() unwind in ntb_epf_init_isr() Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 310/349] riscv: mm: Define DIRECT_MAP_PHYSMEM_END Greg Kroah-Hartman
2026-07-16 17:20   ` Vivian Wang
2026-07-16 13:34 ` [PATCH 6.12 311/349] riscv: mm: Unconditionally sfence.vma for spurious fault Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 312/349] mm: fix mmap errno value when MAP_DROPPABLE is not supported Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 313/349] selftests: mm: fix and speedup "droppable" test Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 314/349] mm: do file ownership checks with the proper mount idmap Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 315/349] selftests/mm: pagemap_ioctl: use the correct page size for transact_test() Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 316/349] iommu/amd: Dont split flush for amd_iommu_domain_flush_all() Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 317/349] iommufd: Set upper bounds on cache invalidation entry_num and entry_len Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 318/349] KVM: VMX: Refresh GUEST_PENDING_DBG_EXCEPTIONS.BS on all injected #DBs Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 319/349] KVM: x86: Ensure vendors exit handler runs before fastpath userspace exits Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 320/349] KVM: VMX: Grab vmcs12 on CR8 interception update iff vCPU is in guest mode Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 321/349] udmabuf: fix DMA direction mismatch in release_udmabuf() Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 322/349] dma-buf/udmabuf: skip redundant cpu sync to fix cacheline EEXIST warning Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 323/349] i2c: core: fix adapter probe deferral loop Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 324/349] i2c: core: fix irq domain leak on adapter registration failure Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 325/349] i2c: core: fix NULL-deref " Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 326/349] i2c: core: fix adapter debugfs creation Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 327/349] i2c: core: fix adapter deregistration race Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 328/349] i2c: mpc: Fix timeout calculations Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 329/349] i2c: stm32f7: truncate clock period instead of rounding it Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 330/349] Input: synaptics-rmi4 - unregister function handlers on physical driver registration failure Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 331/349] Input: synaptics-rmi4 - bound the F3A keymap to the GPIO count Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 332/349] Input: synaptics-rmi4 - bound the F30 keymap to the GPIO/LED count Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 333/349] Input: elan_i2c - prevent division by zero and arithmetic underflow Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 334/349] Input: goodix - clamp the device-reported contact count Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 335/349] Input: iforce - bound the device-reported force-feedback effect index Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 336/349] Input: mms114 - fix touch indexing for MMS134S and MMS136 Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 337/349] Input: touchwin - reset the packet index on every complete packet Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 338/349] Input: mms114 - reject an oversized device packet size Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 339/349] Input: maplemouse - fix NULL pointer dereference in open() Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 340/349] Input: mms114 - fix multi-touch slot corruption Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 341/349] Input: maple_keyb - set driver data before registering input device Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 342/349] Input: maplemouse " Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 343/349] Input: maplecontrol " Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 344/349] RDMA/rtrs-srv: Bound RDMA-Write length to chunk size in rdma_write_sg Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 345/349] RDMA/siw: bound Read Response placement to the RREAD length Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 346/349] fuse: fix device node leak in cuse_process_init_reply() Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 347/349] fuse: re-lock request before returning from fuse_ref_folio() Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 348/349] fuse: clear intr_entry in fuse_resend and fuse_remove_pending_req Greg Kroah-Hartman
2026-07-16 13:34 ` [PATCH 6.12 349/349] usb: gadget: f_fs: Initialize epfile->in early to fix endpoint direction checks Greg Kroah-Hartman
2026-07-16 14:54 ` [PATCH 6.12 000/349] 6.12.96-rc1 review Brett A C Sheffield
2026-07-16 17:03 ` Florian Fainelli
2026-07-16 20:09 ` Peter Schneider

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=20260716133033.818582988@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=anna.schumaker@oracle.com \
    --cc=jcurley@purestorage.com \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.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