diff options
author | Benjamin Coddington <bcodding@redhat.com> | 2015-10-22 13:38:13 -0400 |
---|---|---|
committer | Jeff Layton <jeff.layton@primarydata.com> | 2015-10-22 14:57:20 -0400 |
commit | e55c34a66f87e78fb1fc6b623b78c5ad74b475af (patch) | |
tree | aefee1b4c4e7a0fb2c6ba1db9fee681e52e08506 /fs/locks.c | |
parent | 6ca7d910121af4dd8c83294b50546f4664b2a932 (diff) | |
download | lwn-e55c34a66f87e78fb1fc6b623b78c5ad74b475af.tar.gz lwn-e55c34a66f87e78fb1fc6b623b78c5ad74b475af.zip |
locks: introduce locks_lock_inode_wait()
Users of the locks API commonly call either posix_lock_file_wait() or
flock_lock_file_wait() depending upon the lock type. Add a new function
locks_lock_inode_wait() which will check and call the correct function for
the type of lock passed in.
Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Jeff Layton <jeff.layton@primarydata.com>
Diffstat (limited to 'fs/locks.c')
-rw-r--r-- | fs/locks.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/fs/locks.c b/fs/locks.c index c74c9df419bc..c1745119fc5b 100644 --- a/fs/locks.c +++ b/fs/locks.c @@ -1882,6 +1882,30 @@ int flock_lock_inode_wait(struct inode *inode, struct file_lock *fl) EXPORT_SYMBOL(flock_lock_inode_wait); /** + * locks_lock_inode_wait - Apply a lock to an inode + * @inode: inode of the file to apply to + * @fl: The lock to be applied + * + * Apply a POSIX or FLOCK style lock request to an inode. + */ +int locks_lock_inode_wait(struct inode *inode, struct file_lock *fl) +{ + int res = 0; + switch (fl->fl_flags & (FL_POSIX|FL_FLOCK)) { + case FL_POSIX: + res = posix_lock_inode_wait(inode, fl); + break; + case FL_FLOCK: + res = flock_lock_inode_wait(inode, fl); + break; + default: + BUG(); + } + return res; +} +EXPORT_SYMBOL(locks_lock_inode_wait); + +/** * sys_flock: - flock() system call. * @fd: the file descriptor to lock. * @cmd: the type of lock to apply. |