]> Pileus Git - ~andy/linux/blobdiff - include/linux/fs.h
fs: Fix hang with BSD accounting on frozen filesystem
[~andy/linux] / include / linux / fs.h
index e8cd6b8396753901227a34659cedca367beb0926..b5a24ba83b6f17c7ae98bce197559a8d7e6ef60e 100644 (file)
@@ -2227,6 +2227,13 @@ static inline void file_start_write(struct file *file)
        __sb_start_write(file_inode(file)->i_sb, SB_FREEZE_WRITE, true);
 }
 
+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);
+}
+
 static inline void file_end_write(struct file *file)
 {
        if (!S_ISREG(file_inode(file)->i_mode))