Skip to content

Commit

Permalink
locks: remove lock_may_read and lock_may_write
Browse files Browse the repository at this point in the history
There are no callers of these functions.

Signed-off-by: Jeff Layton <jlayton@primarydata.com>
  • Loading branch information
Jeff Layton committed Sep 9, 2014
1 parent 09802fd commit 699688a
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 94 deletions.
80 changes: 0 additions & 80 deletions fs/locks.c
Original file line number Diff line number Diff line change
Expand Up @@ -2597,86 +2597,6 @@ static int __init proc_locks_init(void)
module_init(proc_locks_init);
#endif

/**
* lock_may_read - checks that the region is free of locks
* @inode: the inode that is being read
* @start: the first byte to read
* @len: the number of bytes to read
*
* Emulates Windows locking requirements. Whole-file
* mandatory locks (share modes) can prohibit a read and
* byte-range POSIX locks can prohibit a read if they overlap.
*
* N.B. this function is only ever called
* from knfsd and ownership of locks is never checked.
*/
int lock_may_read(struct inode *inode, loff_t start, unsigned long len)
{
struct file_lock *fl;
int result = 1;

spin_lock(&inode->i_lock);
for (fl = inode->i_flock; fl != NULL; fl = fl->fl_next) {
if (IS_POSIX(fl)) {
if (fl->fl_type == F_RDLCK)
continue;
if ((fl->fl_end < start) || (fl->fl_start > (start + len)))
continue;
} else if (IS_FLOCK(fl)) {
if (!(fl->fl_type & LOCK_MAND))
continue;
if (fl->fl_type & LOCK_READ)
continue;
} else
continue;
result = 0;
break;
}
spin_unlock(&inode->i_lock);
return result;
}

EXPORT_SYMBOL(lock_may_read);

/**
* lock_may_write - checks that the region is free of locks
* @inode: the inode that is being written
* @start: the first byte to write
* @len: the number of bytes to write
*
* Emulates Windows locking requirements. Whole-file
* mandatory locks (share modes) can prohibit a write and
* byte-range POSIX locks can prohibit a write if they overlap.
*
* N.B. this function is only ever called
* from knfsd and ownership of locks is never checked.
*/
int lock_may_write(struct inode *inode, loff_t start, unsigned long len)
{
struct file_lock *fl;
int result = 1;

spin_lock(&inode->i_lock);
for (fl = inode->i_flock; fl != NULL; fl = fl->fl_next) {
if (IS_POSIX(fl)) {
if ((fl->fl_end < start) || (fl->fl_start > (start + len)))
continue;
} else if (IS_FLOCK(fl)) {
if (!(fl->fl_type & LOCK_MAND))
continue;
if (fl->fl_type & LOCK_WRITE)
continue;
} else
continue;
result = 0;
break;
}
spin_unlock(&inode->i_lock);
return result;
}

EXPORT_SYMBOL(lock_may_write);

static int __init filelock_init(void)
{
int i;
Expand Down
14 changes: 0 additions & 14 deletions include/linux/fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -985,8 +985,6 @@ extern void lease_get_mtime(struct inode *, struct timespec *time);
extern int generic_setlease(struct file *, long, struct file_lock **);
extern int vfs_setlease(struct file *, long, struct file_lock **);
extern int lease_modify(struct file_lock **, int);
extern int lock_may_read(struct inode *, loff_t start, unsigned long count);
extern int lock_may_write(struct inode *, loff_t start, unsigned long count);
#else /* !CONFIG_FILE_LOCKING */
static inline int fcntl_getlk(struct file *file, unsigned int cmd,
struct flock __user *user)
Expand Down Expand Up @@ -1117,18 +1115,6 @@ static inline int lease_modify(struct file_lock **before, int arg)
{
return -EINVAL;
}

static inline int lock_may_read(struct inode *inode, loff_t start,
unsigned long len)
{
return 1;
}

static inline int lock_may_write(struct inode *inode, loff_t start,
unsigned long len)
{
return 1;
}
#endif /* !CONFIG_FILE_LOCKING */


Expand Down

0 comments on commit 699688a

Please sign in to comment.