Thread (100 messages) 100 messages, 4 authors, 2021-11-24

Re: [PATCH 18/29] fsdax: decouple zeroing from the iomap buffered I/O code

From: Christoph Hellwig <hch@lst.de>
Date: 2021-11-24 06:50:56
Also in: dm-devel, linux-ext4, linux-fsdevel, linux-s390, nvdimm, virtualization

On Tue, Nov 23, 2021 at 01:46:35PM -0800, Dan Williams wrote:
quoted
+               const struct iomap_ops *ops)
+{
+       unsigned int blocksize = i_blocksize(inode);
+       unsigned int off = pos & (blocksize - 1);
+
+       /* Block boundary? Nothing to do */
+       if (!off)
+               return 0;
It took me a moment to figure out why this was correct. I see it was
also copied from iomap_truncate_page(). It makes sense for DAX where
blocksize >= PAGE_SIZE so it's always the case that the amount of
capacity to zero relative to a page is from @pos to the end of the
block. Is there something else that protects the blocksize < PAGE_SIZE
case outside of DAX?

Nothing to change for this patch, just a question I had while reviewing.
This is a helper for truncate ->setattr, where everything outside the
block is deallocated.  So zeroing is only needed inside the block.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help