pstore/blk: use bdev_nr_bytes instead of open coding it
authorChristoph Hellwig <hch@lst.de>
Mon, 18 Oct 2021 10:11:21 +0000 (12:11 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 18 Oct 2021 20:43:23 +0000 (14:43 -0600)
Use the proper helper to read the block device size.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20211018101130.1838532-22-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/pstore/blk.c

index 04ce58c..5d1fbaf 100644 (file)
@@ -205,7 +205,6 @@ static ssize_t psblk_generic_blk_write(const char *buf, size_t bytes,
 static int __register_pstore_blk(struct pstore_device_info *dev,
                                 const char *devpath)
 {
-       struct inode *inode;
        int ret = -ENODEV;
 
        lockdep_assert_held(&pstore_blk_lock);
@@ -217,14 +216,13 @@ static int __register_pstore_blk(struct pstore_device_info *dev,
                goto err;
        }
 
-       inode = file_inode(psblk_file);
-       if (!S_ISBLK(inode->i_mode)) {
+       if (!S_ISBLK(file_inode(psblk_file)->i_mode)) {
                pr_err("'%s' is not block device!\n", devpath);
                goto err_fput;
        }
 
-       inode = I_BDEV(psblk_file->f_mapping->host)->bd_inode;
-       dev->zone.total_size = i_size_read(inode);
+       dev->zone.total_size =
+               bdev_nr_bytes(I_BDEV(psblk_file->f_mapping->host));
 
        ret = __register_pstore_device(dev);
        if (ret)