public inbox for linux-block@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Do not require atomic writes to be power of 2 sized and aligned on length boundary
@ 2025-12-20 17:38 Vitaliy Filippov
  2025-12-21  7:10 ` kernel test robot
  2025-12-21 13:01 ` kernel test robot
  0 siblings, 2 replies; 4+ messages in thread
From: Vitaliy Filippov @ 2025-12-20 17:38 UTC (permalink / raw)
  To: linux-block, linux-nvme; +Cc: Vitaliy Filippov

It contradicts NVMe specification where alignment is only required when atomic
write boundary (NABSPF/NABO) is set and highly limits usage of NVMe atomic writes

Signed-off-by: Vitaliy Filippov <vitalifster@gmail.com>
---
 fs/read_write.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/fs/read_write.c b/fs/read_write.c
index 833bae068770..8b901be75a9f 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -1807,12 +1807,6 @@ int generic_atomic_write_valid(struct kiocb *iocb, struct iov_iter *iter)
 	if (!iter_is_ubuf(iter))
 		return -EINVAL;
 
-	if (!is_power_of_2(len))
-		return -EINVAL;
-
-	if (!IS_ALIGNED(iocb->ki_pos, len))
-		return -EINVAL;
-
 	if (!(iocb->ki_flags & IOCB_DIRECT))
 		return -EOPNOTSUPP;
 
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread
* [PATCH] Do not require atomic writes to be power of 2 sized and aligned on length boundary
@ 2025-12-21 11:17 Vitaliy Filippov
  0 siblings, 0 replies; 4+ messages in thread
From: Vitaliy Filippov @ 2025-12-21 11:17 UTC (permalink / raw)
  To: linux-block, linux-nvme; +Cc: Vitaliy Filippov

It contradicts NVMe specification where alignment is only required when atomic
write boundary (NABSPF/NABO) is set and highly limits usage of NVMe atomic writes

Signed-off-by: Vitaliy Filippov <vitalifster@gmail.com>
---
 fs/read_write.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/fs/read_write.c b/fs/read_write.c
index 833bae068770..5467d710108d 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -1802,17 +1802,9 @@ int generic_file_rw_checks(struct file *file_in, struct file *file_out)
 
 int generic_atomic_write_valid(struct kiocb *iocb, struct iov_iter *iter)
 {
-	size_t len = iov_iter_count(iter);
-
 	if (!iter_is_ubuf(iter))
 		return -EINVAL;
 
-	if (!is_power_of_2(len))
-		return -EINVAL;
-
-	if (!IS_ALIGNED(iocb->ki_pos, len))
-		return -EINVAL;
-
 	if (!(iocb->ki_flags & IOCB_DIRECT))
 		return -EOPNOTSUPP;
 
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-12-21 13:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-20 17:38 [PATCH] Do not require atomic writes to be power of 2 sized and aligned on length boundary Vitaliy Filippov
2025-12-21  7:10 ` kernel test robot
2025-12-21 13:01 ` kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2025-12-21 11:17 Vitaliy Filippov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox