Merge f01c30de86
("Merge tag 'vfs-5.10-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux") into android-mainline
Steps on the way to 5.10-rc4 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: Iba36d2244c4229d44e3d391ed23dc25c6022f917
This commit is contained in:
@@ -1580,8 +1580,24 @@ extern struct timespec64 current_time(struct inode *inode);
|
||||
* Snapshotting support.
|
||||
*/
|
||||
|
||||
void __sb_end_write(struct super_block *sb, int level);
|
||||
int __sb_start_write(struct super_block *sb, int level, bool wait);
|
||||
/*
|
||||
* These are internal functions, please use sb_start_{write,pagefault,intwrite}
|
||||
* instead.
|
||||
*/
|
||||
static inline void __sb_end_write(struct super_block *sb, int level)
|
||||
{
|
||||
percpu_up_read(sb->s_writers.rw_sem + level-1);
|
||||
}
|
||||
|
||||
static inline void __sb_start_write(struct super_block *sb, int level)
|
||||
{
|
||||
percpu_down_read(sb->s_writers.rw_sem + level - 1);
|
||||
}
|
||||
|
||||
static inline bool __sb_start_write_trylock(struct super_block *sb, int level)
|
||||
{
|
||||
return percpu_down_read_trylock(sb->s_writers.rw_sem + level - 1);
|
||||
}
|
||||
|
||||
#define __sb_writers_acquired(sb, lev) \
|
||||
percpu_rwsem_acquire(&(sb)->s_writers.rw_sem[(lev)-1], 1, _THIS_IP_)
|
||||
@@ -1645,12 +1661,12 @@ static inline void sb_end_intwrite(struct super_block *sb)
|
||||
*/
|
||||
static inline void sb_start_write(struct super_block *sb)
|
||||
{
|
||||
__sb_start_write(sb, SB_FREEZE_WRITE, true);
|
||||
__sb_start_write(sb, SB_FREEZE_WRITE);
|
||||
}
|
||||
|
||||
static inline int sb_start_write_trylock(struct super_block *sb)
|
||||
static inline bool sb_start_write_trylock(struct super_block *sb)
|
||||
{
|
||||
return __sb_start_write(sb, SB_FREEZE_WRITE, false);
|
||||
return __sb_start_write_trylock(sb, SB_FREEZE_WRITE);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1674,7 +1690,7 @@ static inline int sb_start_write_trylock(struct super_block *sb)
|
||||
*/
|
||||
static inline void sb_start_pagefault(struct super_block *sb)
|
||||
{
|
||||
__sb_start_write(sb, SB_FREEZE_PAGEFAULT, true);
|
||||
__sb_start_write(sb, SB_FREEZE_PAGEFAULT);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1692,12 +1708,12 @@ static inline void sb_start_pagefault(struct super_block *sb)
|
||||
*/
|
||||
static inline void sb_start_intwrite(struct super_block *sb)
|
||||
{
|
||||
__sb_start_write(sb, SB_FREEZE_FS, true);
|
||||
__sb_start_write(sb, SB_FREEZE_FS);
|
||||
}
|
||||
|
||||
static inline int sb_start_intwrite_trylock(struct super_block *sb)
|
||||
static inline bool sb_start_intwrite_trylock(struct super_block *sb)
|
||||
{
|
||||
return __sb_start_write(sb, SB_FREEZE_FS, false);
|
||||
return __sb_start_write_trylock(sb, SB_FREEZE_FS);
|
||||
}
|
||||
|
||||
|
||||
@@ -2756,14 +2772,14 @@ static inline void file_start_write(struct file *file)
|
||||
{
|
||||
if (!S_ISREG(file_inode(file)->i_mode))
|
||||
return;
|
||||
__sb_start_write(file_inode(file)->i_sb, SB_FREEZE_WRITE, true);
|
||||
sb_start_write(file_inode(file)->i_sb);
|
||||
}
|
||||
|
||||
static inline bool file_start_write_trylock(struct file *file)
|
||||
{
|
||||
if (!S_ISREG(file_inode(file)->i_mode))
|
||||
return true;
|
||||
return __sb_start_write(file_inode(file)->i_sb, SB_FREEZE_WRITE, false);
|
||||
return sb_start_write_trylock(file_inode(file)->i_sb);
|
||||
}
|
||||
|
||||
static inline void file_end_write(struct file *file)
|
||||
|
Reference in New Issue
Block a user