diff options
Diffstat (limited to 'fs/file.c')
-rw-r--r-- | fs/file.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/file.c b/fs/file.c index d868cdb95d1e..44efdc8c1e27 100644 --- a/fs/file.c +++ b/fs/file.c @@ -1182,6 +1182,16 @@ static inline bool file_needs_f_pos_lock(struct file *file) (file_count(file) > 1 || file->f_op->iterate_shared); } +bool file_seek_cur_needs_f_lock(struct file *file) +{ + if (!(file->f_mode & FMODE_ATOMIC_POS) && !file->f_op->iterate_shared) + return false; + + VFS_WARN_ON_ONCE((file_count(file) > 1) && + !mutex_is_locked(&file->f_pos_lock)); + return true; +} + struct fd fdget_pos(unsigned int fd) { struct fd f = fdget(fd); |