mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 04:20:53 +07:00
fs/locks: change all *_conflict() functions to return bool.
posix_locks_conflict() and flock_locks_conflict() both return int. leases_conflict() returns bool. This inconsistency will cause problems for the next patch if not fixed. So change posix_locks_conflict() and flock_locks_conflict() to return bool. Also change the locks_conflict() helper. And convert some return (foo); to return foo; Signed-off-by: NeilBrown <neilb@suse.com> Reviewed-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Jeff Layton <jlayton@kernel.org>
This commit is contained in:
parent
16306a61d3
commit
c0e1590897
27
fs/locks.c
27
fs/locks.c
@ -816,47 +816,50 @@ locks_delete_lock_ctx(struct file_lock *fl, struct list_head *dispose)
|
|||||||
/* Determine if lock sys_fl blocks lock caller_fl. Common functionality
|
/* Determine if lock sys_fl blocks lock caller_fl. Common functionality
|
||||||
* checks for shared/exclusive status of overlapping locks.
|
* checks for shared/exclusive status of overlapping locks.
|
||||||
*/
|
*/
|
||||||
static int locks_conflict(struct file_lock *caller_fl, struct file_lock *sys_fl)
|
static bool locks_conflict(struct file_lock *caller_fl,
|
||||||
|
struct file_lock *sys_fl)
|
||||||
{
|
{
|
||||||
if (sys_fl->fl_type == F_WRLCK)
|
if (sys_fl->fl_type == F_WRLCK)
|
||||||
return 1;
|
return true;
|
||||||
if (caller_fl->fl_type == F_WRLCK)
|
if (caller_fl->fl_type == F_WRLCK)
|
||||||
return 1;
|
return true;
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Determine if lock sys_fl blocks lock caller_fl. POSIX specific
|
/* Determine if lock sys_fl blocks lock caller_fl. POSIX specific
|
||||||
* checking before calling the locks_conflict().
|
* checking before calling the locks_conflict().
|
||||||
*/
|
*/
|
||||||
static int posix_locks_conflict(struct file_lock *caller_fl, struct file_lock *sys_fl)
|
static bool posix_locks_conflict(struct file_lock *caller_fl,
|
||||||
|
struct file_lock *sys_fl)
|
||||||
{
|
{
|
||||||
/* POSIX locks owned by the same process do not conflict with
|
/* POSIX locks owned by the same process do not conflict with
|
||||||
* each other.
|
* each other.
|
||||||
*/
|
*/
|
||||||
if (posix_same_owner(caller_fl, sys_fl))
|
if (posix_same_owner(caller_fl, sys_fl))
|
||||||
return (0);
|
return false;
|
||||||
|
|
||||||
/* Check whether they overlap */
|
/* Check whether they overlap */
|
||||||
if (!locks_overlap(caller_fl, sys_fl))
|
if (!locks_overlap(caller_fl, sys_fl))
|
||||||
return 0;
|
return false;
|
||||||
|
|
||||||
return (locks_conflict(caller_fl, sys_fl));
|
return locks_conflict(caller_fl, sys_fl);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Determine if lock sys_fl blocks lock caller_fl. FLOCK specific
|
/* Determine if lock sys_fl blocks lock caller_fl. FLOCK specific
|
||||||
* checking before calling the locks_conflict().
|
* checking before calling the locks_conflict().
|
||||||
*/
|
*/
|
||||||
static int flock_locks_conflict(struct file_lock *caller_fl, struct file_lock *sys_fl)
|
static bool flock_locks_conflict(struct file_lock *caller_fl,
|
||||||
|
struct file_lock *sys_fl)
|
||||||
{
|
{
|
||||||
/* FLOCK locks referring to the same filp do not conflict with
|
/* FLOCK locks referring to the same filp do not conflict with
|
||||||
* each other.
|
* each other.
|
||||||
*/
|
*/
|
||||||
if (caller_fl->fl_file == sys_fl->fl_file)
|
if (caller_fl->fl_file == sys_fl->fl_file)
|
||||||
return (0);
|
return false;
|
||||||
if ((caller_fl->fl_type & LOCK_MAND) || (sys_fl->fl_type & LOCK_MAND))
|
if ((caller_fl->fl_type & LOCK_MAND) || (sys_fl->fl_type & LOCK_MAND))
|
||||||
return 0;
|
return false;
|
||||||
|
|
||||||
return (locks_conflict(caller_fl, sys_fl));
|
return locks_conflict(caller_fl, sys_fl);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user