mirror of https://gitee.com/openkylin/linux.git
fs/affs: add validation block function
Avoid repeating 4 times the same calculation. Link: http://lkml.kernel.org/r/20170109191208.6085-3-fabf@skynet.be Signed-off-by: Fabian Frederick <fabf@skynet.be> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
7981a05a0e
commit
d5de9fd594
|
@ -212,6 +212,12 @@ extern const struct address_space_operations affs_aops_ofs;
|
|||
extern const struct dentry_operations affs_dentry_operations;
|
||||
extern const struct dentry_operations affs_intl_dentry_operations;
|
||||
|
||||
static inline bool affs_validblock(struct super_block *sb, int block)
|
||||
{
|
||||
return(block >= AFFS_SB(sb)->s_reserved &&
|
||||
block < AFFS_SB(sb)->s_partition_size);
|
||||
}
|
||||
|
||||
static inline void
|
||||
affs_set_blocksize(struct super_block *sb, int size)
|
||||
{
|
||||
|
@ -221,7 +227,7 @@ static inline struct buffer_head *
|
|||
affs_bread(struct super_block *sb, int block)
|
||||
{
|
||||
pr_debug("%s: %d\n", __func__, block);
|
||||
if (block >= AFFS_SB(sb)->s_reserved && block < AFFS_SB(sb)->s_partition_size)
|
||||
if (affs_validblock(sb, block))
|
||||
return sb_bread(sb, block);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -229,7 +235,7 @@ static inline struct buffer_head *
|
|||
affs_getblk(struct super_block *sb, int block)
|
||||
{
|
||||
pr_debug("%s: %d\n", __func__, block);
|
||||
if (block >= AFFS_SB(sb)->s_reserved && block < AFFS_SB(sb)->s_partition_size)
|
||||
if (affs_validblock(sb, block))
|
||||
return sb_getblk(sb, block);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -238,7 +244,7 @@ affs_getzeroblk(struct super_block *sb, int block)
|
|||
{
|
||||
struct buffer_head *bh;
|
||||
pr_debug("%s: %d\n", __func__, block);
|
||||
if (block >= AFFS_SB(sb)->s_reserved && block < AFFS_SB(sb)->s_partition_size) {
|
||||
if (affs_validblock(sb, block)) {
|
||||
bh = sb_getblk(sb, block);
|
||||
lock_buffer(bh);
|
||||
memset(bh->b_data, 0 , sb->s_blocksize);
|
||||
|
@ -253,7 +259,7 @@ affs_getemptyblk(struct super_block *sb, int block)
|
|||
{
|
||||
struct buffer_head *bh;
|
||||
pr_debug("%s: %d\n", __func__, block);
|
||||
if (block >= AFFS_SB(sb)->s_reserved && block < AFFS_SB(sb)->s_partition_size) {
|
||||
if (affs_validblock(sb, block)) {
|
||||
bh = sb_getblk(sb, block);
|
||||
wait_on_buffer(bh);
|
||||
set_buffer_uptodate(bh);
|
||||
|
|
Loading…
Reference in New Issue