bdev.c (2a906db2824b75444982f5e9df870106982afca8) | bdev.c (2d985f8c6b91b5007a16e640bb9c038c5fb2839b) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 1991, 1992 Linus Torvalds 4 * Copyright (C) 2001 Andrea Arcangeli <andrea@suse.de> SuSE 5 * Copyright (C) 2016 - 2020 Christoph Hellwig 6 */ 7 8#include <linux/init.h> --- 12 unchanged lines hidden (view full) --- 21#include <linux/swap.h> 22#include <linux/writeback.h> 23#include <linux/mount.h> 24#include <linux/pseudo_fs.h> 25#include <linux/uio.h> 26#include <linux/namei.h> 27#include <linux/part_stat.h> 28#include <linux/uaccess.h> | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 1991, 1992 Linus Torvalds 4 * Copyright (C) 2001 Andrea Arcangeli <andrea@suse.de> SuSE 5 * Copyright (C) 2016 - 2020 Christoph Hellwig 6 */ 7 8#include <linux/init.h> --- 12 unchanged lines hidden (view full) --- 21#include <linux/swap.h> 22#include <linux/writeback.h> 23#include <linux/mount.h> 24#include <linux/pseudo_fs.h> 25#include <linux/uio.h> 26#include <linux/namei.h> 27#include <linux/part_stat.h> 28#include <linux/uaccess.h> |
29#include <linux/stat.h> |
|
29#include "../fs/internal.h" 30#include "blk.h" 31 32struct bdev_inode { 33 struct block_device bdev; 34 struct inode vfs_inode; 35}; 36 --- 1027 unchanged lines hidden (view full) --- 1064 } 1065 mutex_unlock(&bdev->bd_disk->open_mutex); 1066 1067 spin_lock(&blockdev_superblock->s_inode_list_lock); 1068 } 1069 spin_unlock(&blockdev_superblock->s_inode_list_lock); 1070 iput(old_inode); 1071} | 30#include "../fs/internal.h" 31#include "blk.h" 32 33struct bdev_inode { 34 struct block_device bdev; 35 struct inode vfs_inode; 36}; 37 --- 1027 unchanged lines hidden (view full) --- 1065 } 1066 mutex_unlock(&bdev->bd_disk->open_mutex); 1067 1068 spin_lock(&blockdev_superblock->s_inode_list_lock); 1069 } 1070 spin_unlock(&blockdev_superblock->s_inode_list_lock); 1071 iput(old_inode); 1072} |
1073 1074/* 1075 * Handle STATX_DIOALIGN for block devices. 1076 * 1077 * Note that the inode passed to this is the inode of a block device node file, 1078 * not the block device's internal inode. Therefore it is *not* valid to use 1079 * I_BDEV() here; the block device has to be looked up by i_rdev instead. 1080 */ 1081void bdev_statx_dioalign(struct inode *inode, struct kstat *stat) 1082{ 1083 struct block_device *bdev; 1084 1085 bdev = blkdev_get_no_open(inode->i_rdev); 1086 if (!bdev) 1087 return; 1088 1089 stat->dio_mem_align = bdev_dma_alignment(bdev) + 1; 1090 stat->dio_offset_align = bdev_logical_block_size(bdev); 1091 stat->result_mask |= STATX_DIOALIGN; 1092 1093 blkdev_put_no_open(bdev); 1094} |
|