Thread (4 messages) 4 messages, 3 authors, 2025-08-25

Re: [PATCH] loop: fix zero sized loop for block special file

From: Christoph Hellwig <hch@infradead.org>
Date: 2025-08-25 09:18:12
Also in: linux-fsdevel, lkml

On Mon, Aug 25, 2025 at 04:56:55PM +0800, Ming Lei wrote:
`stat $BDEV_PATH` never works for getting bdev size, so it looks wrong
to call vfs_getattr_nosec() with bdev path for retrieving bdev's size.
Exactly.
So just wondering why not take the following more readable way?

	/* vfs_getattr() never works for retrieving bdev size */
	if (S_ISBLK(stat.mode)) {
		loopsize = i_size_read(file->f_mapping->host);
	} else {
          ret = vfs_getattr_nosec(&file->f_path, &stat, STATX_SIZE, 0);
          if (ret)
                  return 0;
          loopsize = stat.size;
	}

Also the above looks like how application reads file size in case of bdev
involved.
That's not just more readable, but simply the way to go.  Maybe split
it into a helper for readability, though.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help