file_lock
mutex_unlock(&user->file_lock);
struct mutex file_lock;
mutex_init(&user->file_lock);
mutex_lock(&user->file_lock);
mutex_unlock(&user->file_lock);
mutex_lock(&user->file_lock);
mutex_unlock(&user->file_lock);
mutex_lock(&user->file_lock);
spin_lock_init(&cd->file_lock);
spinlock_t file_lock; /* lock for open files */
spin_lock_irqsave(&cd->file_lock, flags);
spin_unlock_irqrestore(&cd->file_lock, flags);
spin_lock_irqsave(&cd->file_lock, flags);
spin_unlock_irqrestore(&cd->file_lock, flags);
spin_lock_irqsave(&cd->file_lock, flags);
spin_unlock_irqrestore(&cd->file_lock, flags);
spin_lock_irqsave(&cd->file_lock, flags);
spin_unlock_irqrestore(&cd->file_lock, flags);
spin_lock_irqsave(&cd->file_lock, flags);
spin_unlock_irqrestore(&cd->file_lock, flags);
static int v9fs_file_lock(struct file *filp, int cmd, struct file_lock *fl)
static int v9fs_file_do_lock(struct file *filp, int cmd, struct file_lock *fl)
static int v9fs_file_getlock(struct file *filp, struct file_lock *fl)
static int v9fs_file_lock_dotl(struct file *filp, int cmd, struct file_lock *fl)
struct file_lock *fl)
struct file_lock *p, *_p, *next = NULL;
struct file_lock *p;
struct file_lock, fl_u.afs.link);
static void afs_fl_copy_lock(struct file_lock *new, struct file_lock *fl);
static void afs_fl_release_private(struct file_lock *fl);
static int afs_do_setlk(struct file *file, struct file_lock *fl)
static int afs_do_unlk(struct file *file, struct file_lock *fl)
static int afs_do_getlk(struct file *file, struct file_lock *fl)
int afs_lock(struct file *file, int cmd, struct file_lock *fl)
int afs_flock(struct file *file, int cmd, struct file_lock *fl)
static void afs_fl_copy_lock(struct file_lock *new, struct file_lock *fl)
static void afs_fl_release_private(struct file_lock *fl)
struct file_lock *p, *_p;
extern int afs_lock(struct file *, int, struct file_lock *);
extern int afs_flock(struct file *, int, struct file_lock *);
static int try_unlock_file(struct file *file, struct file_lock *fl)
int ceph_lock(struct file *file, int cmd, struct file_lock *fl)
int ceph_flock(struct file *file, int cmd, struct file_lock *fl)
static void ceph_fl_copy_lock(struct file_lock *dst, struct file_lock *src)
struct file_lock *lock;
struct file_lock *lock,
struct file_lock *lock;
static void ceph_fl_release_lock(struct file_lock *fl)
int cmd, u8 wait, struct file_lock *fl)
extern int ceph_lock(struct file *file, int cmd, struct file_lock *fl);
extern int ceph_flock(struct file *file, int cmd, struct file_lock *fl);
int cmd, struct file_lock *fl)
struct file_lock *fl;
struct file_lock *flc;
int (*notify)(struct file_lock *fl, int result) = NULL;
struct file_lock flc;
struct file_lock *fl)
int (*callback)(struct file_lock *fl, int result);
struct file_lock *fl)
struct file_lock *fl)
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
__releases(&files->file_lock)
spin_unlock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
__releases(files->file_lock)
__acquires(files->file_lock)
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
__releases(files->file_lock)
__acquires(files->file_lock)
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_lock_init(&newf->file_lock);
spin_lock(&oldf->file_lock);
spin_unlock(&oldf->file_lock);
spin_lock(&oldf->file_lock);
spin_unlock(&oldf->file_lock);
.file_lock = __SPIN_LOCK_UNLOCKED(init_files.file_lock),
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
lockdep_assert_held(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&cur_fds->file_lock);
spin_unlock(&cur_fds->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
struct file_lock *fl)
const struct file_lock *fl, int opcode, pid_t pid,
static int fuse_getlk(struct file *file, struct file_lock *fl)
static int fuse_setlk(struct file *file, struct file_lock *fl, int flock)
static int fuse_file_lock(struct file *file, int cmd, struct file_lock *fl)
static int fuse_file_flock(struct file *file, int cmd, struct file_lock *fl)
static int gfs2_lock(struct file *file, int cmd, struct file_lock *fl)
static int do_flock(struct file *file, int cmd, struct file_lock *fl)
struct file_lock request;
static void do_unflock(struct file *file, struct file_lock *fl)
static int gfs2_flock(struct file *file, int cmd, struct file_lock *fl)
struct file_lock *fl = &lock->fl;
const struct file_lock *fl = &lock->fl;
const struct file_lock *fl = &lock->fl;
struct file_lock *fl_blocked = block->b_lock;
struct file_lock *fl, *next;
void nlmclnt_prepare_block(struct nlm_wait *block, struct nlm_host *host, struct file_lock *fl)
static void nlmclnt_setlockargs(struct nlm_rqst *req, struct file_lock *fl)
int nlmclnt_proc(struct nlm_host *host, int cmd, struct file_lock *fl, void *data)
static int nlmclnt_test(struct nlm_rqst *, struct file_lock *);
static int nlmclnt_lock(struct nlm_rqst *, struct file_lock *);
static int nlmclnt_unlock(struct nlm_rqst *, struct file_lock *);
static void nlmclnt_locks_init_private(struct file_lock *fl, struct nlm_host *host);
static int nlmclnt_cancel(struct nlm_host *, int , struct file_lock *);
nlmclnt_test(struct nlm_rqst *req, struct file_lock *fl)
static void nlmclnt_locks_copy_lock(struct file_lock *new, struct file_lock *fl)
static void nlmclnt_locks_release_private(struct file_lock *fl)
static void nlmclnt_locks_init_private(struct file_lock *fl, struct nlm_host *host)
static int do_vfs_lock(struct file_lock *fl)
nlmclnt_lock(struct nlm_rqst *req, struct file_lock *fl)
nlmclnt_reclaim(struct nlm_host *host, struct file_lock *fl,
nlmclnt_unlock(struct nlm_rqst *req, struct file_lock *fl)
static int nlmclnt_cancel(struct nlm_host *host, int block, struct file_lock *fl)
struct file_lock *fl = &lock->fl;
const struct file_lock *fl = &lock->fl;
struct file_lock *fl;
void nlmsvc_locks_init_private(struct file_lock *fl, struct nlm_host *host,
struct file_lock *fl = &block->b_call->a_args.lock.fl;
static int nlmsvc_grant_deferred(struct file_lock *fl, int result)
nlmsvc_notify_blocked(struct file_lock *fl)
struct file_lock *fl;
static int nlm_unlock_files(struct nlm_file *file, const struct file_lock *fl)
struct file_lock lock;
struct file_lock *fl;
struct file_lock *fl;
int lock_to_openmode(struct file_lock *lock)
const struct file_lock *fl = &lock->fl;
struct file_lock *fl = &lock->fl;
const struct file_lock *fl = &lock->fl;
void nlm4svc_set_file_lock_range(struct file_lock *fl, u64 off, u64 len)
struct file_lock *fl = &lock->fl;
posix_test_lock(struct file *filp, struct file_lock *fl)
struct file_lock *cfl;
static bool posix_locks_deadlock(struct file_lock *caller_fl,
struct file_lock *block_fl)
static int flock_lock_inode(struct inode *inode, struct file_lock *request)
struct file_lock *new_fl = NULL;
struct file_lock *fl;
static int posix_lock_inode(struct inode *inode, struct file_lock *request,
struct file_lock *conflock)
struct file_lock *fl, *tmp;
struct file_lock *new_fl = NULL;
struct file_lock *new_fl2 = NULL;
struct file_lock *left = NULL;
struct file_lock *right = NULL;
int posix_lock_file(struct file *filp, struct file_lock *fl,
struct file_lock *conflock)
static int posix_lock_inode_wait(struct inode *inode, struct file_lock *fl)
static int flock_lock_inode_wait(struct inode *inode, struct file_lock *fl)
int locks_lock_inode_wait(struct inode *inode, struct file_lock *fl)
struct file_lock fl;
int vfs_test_lock(struct file *filp, struct file_lock *fl)
static int posix_lock_to_flock(struct flock *flock, struct file_lock *fl)
static void posix_lock_to_flock64(struct flock64 *flock, struct file_lock *fl)
struct file_lock *fl;
int vfs_lock_file(struct file *filp, unsigned int cmd, struct file_lock *fl, struct file_lock *conf)
struct file_lock *fl)
check_fmode_for_setlk(struct file_lock *fl)
struct file_lock *file_lock = locks_alloc_lock();
if (file_lock == NULL)
error = flock_to_posix_lock(filp, file_lock, flock);
error = check_fmode_for_setlk(file_lock);
file_lock->c.flc_flags |= FL_OFDLCK;
file_lock->c.flc_owner = filp;
file_lock->c.flc_flags |= FL_OFDLCK;
file_lock->c.flc_owner = filp;
file_lock->c.flc_flags |= FL_SLEEP;
error = do_lock_file_wait(filp, cmd, file_lock);
if (!error && file_lock->c.flc_type != F_UNLCK &&
!(file_lock->c.flc_flags & FL_OFDLCK)) {
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
trace_fcntl_setlk(inode, file_lock, error);
locks_free_lock(file_lock);
struct file_lock *fl;
struct file_lock *file_lock = locks_alloc_lock();
if (file_lock == NULL)
error = flock64_to_posix_lock(filp, file_lock, flock);
error = check_fmode_for_setlk(file_lock);
file_lock->c.flc_flags |= FL_OFDLCK;
file_lock->c.flc_owner = filp;
file_lock->c.flc_flags |= FL_OFDLCK;
file_lock->c.flc_owner = filp;
file_lock->c.flc_flags |= FL_SLEEP;
error = do_lock_file_wait(filp, cmd, file_lock);
if (!error && file_lock->c.flc_type != F_UNLCK &&
!(file_lock->c.flc_flags & FL_OFDLCK)) {
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
locks_free_lock(file_lock);
struct file_lock lock;
struct file_lock fl;
int vfs_cancel_lock(struct file *filp, struct file_lock *fl)
struct file_lock *locks_alloc_lock(void)
struct file_lock *fl = file_lock(flc);
struct file_lock *fl = kmem_cache_zalloc(filelock_cache, GFP_KERNEL);
void locks_release_private(struct file_lock *fl)
sizeof(struct file_lock), 0, SLAB_PANIC, NULL);
void locks_free_lock(struct file_lock *fl)
locks_free_lock(file_lock(flc));
void locks_init_lock(struct file_lock *fl)
memset(fl, 0, sizeof(struct file_lock));
void locks_copy_conflock(struct file_lock *new, struct file_lock *fl)
void locks_copy_lock(struct file_lock *new, struct file_lock *fl)
static void locks_move_blocks(struct file_lock *new, struct file_lock *fl)
struct file_lock *f;
static void flock_make_lock(struct file *filp, struct file_lock *fl, int type)
static int flock64_to_posix_lock(struct file *filp, struct file_lock *fl,
static int flock_to_posix_lock(struct file *filp, struct file_lock *fl,
static inline int locks_overlap(struct file_lock *fl1, struct file_lock *fl2)
static struct file_lock *file_lock(struct file_lock_core *flc)
return container_of(flc, struct file_lock, c);
struct file_lock *fl;
fl = file_lock(waiter);
int locks_delete_block(struct file_lock *waiter)
locks_free_lock(file_lock(fl));
struct file_lock *caller_fl = file_lock(caller_flc);
struct file_lock *sys_fl = file_lock(sys_flc);
static bool posix_test_locks_conflict(struct file_lock *caller_fl,
struct file_lock *sys_fl)
struct file_lock *fl;
int nfs4_lock_delegation_recall(struct file_lock *fl, struct nfs4_state *state, const nfs4_stateid *stateid);
do_getlk(struct file *filp, int cmd, struct file_lock *fl, int is_local)
do_unlk(struct file *filp, int cmd, struct file_lock *fl, int is_local)
do_setlk(struct file *filp, int cmd, struct file_lock *fl, int is_local)
int nfs_lock(struct file *filp, int cmd, struct file_lock *fl)
int nfs_flock(struct file *filp, int cmd, struct file_lock *fl)
int nfs_lock(struct file *, int, struct file_lock *);
int nfs_flock(struct file *, int, struct file_lock *);
nfs3_proc_lock(struct file *filp, int cmd, struct file_lock *fl)
int (*recover_lock)(struct nfs4_state *, struct file_lock *);
extern int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request);
extern int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request);
extern int nfs4_set_lock_state(struct nfs4_state *state, struct file_lock *fl);
static int nfs4_handle_delegation_recall_error(struct nfs_server *server, struct nfs4_state *state, const nfs4_stateid *stateid, struct file_lock *fl, int err)
static int _nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock *request)
static int nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock *request)
struct file_lock fl;
static struct nfs4_unlockdata *nfs4_alloc_unlockdata(struct file_lock *fl,
static struct rpc_task *nfs4_do_unlck(struct file_lock *fl,
static int nfs4_proc_unlck(struct nfs4_state *state, int cmd, struct file_lock *request)
struct file_lock fl;
static struct nfs4_lockdata *nfs4_alloc_lockdata(struct file_lock *fl,
static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *fl, int recovery_type)
int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request)
int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request)
static int nfs41_lock_expired(struct nfs4_state *state, struct file_lock *request)
static int _nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
struct file_lock *request)
nfs4_retry_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
nfs4_proc_lock(struct file *filp, int cmd, struct file_lock *request)
int nfs4_lock_delegation_recall(struct file_lock *fl, struct nfs4_state *state, const nfs4_stateid *stateid)
struct file_lock *fl;
static void nfs4_fl_copy_lock(struct file_lock *dst, struct file_lock *src)
static void nfs4_fl_release_lock(struct file_lock *fl)
int nfs4_set_lock_state(struct nfs4_state *state, struct file_lock *fl)
const struct file_lock *request,
const struct file_lock *request, \
const struct file_lock *request,
static inline int nfs4_lock_type(struct file_lock *fl, int block)
static inline uint64_t nfs4_lock_length(struct file_lock *fl)
static int decode_lock_denied(struct xdr_stream *xdr, struct file_lock *fl)
nfs_proc_lock(struct file *filp, int cmd, struct file_lock *fl)
static int nfs_lock_check_bounds(const struct file_lock *fl)
is_whole_file_wrlock(struct file_lock *fl)
struct file_lock *fl;
fl = list_first_entry(&flctx->flc_posix, struct file_lock,
fl = list_first_entry(&flctx->flc_flock, struct file_lock,
nfs4_transform_lock_offset(struct file_lock *lock)
nfsd4_lm_lock_expirable(struct file_lock *cfl)
nfsd4_lm_notify(struct file_lock *fl)
nfs4_set_lock_denied(struct file_lock *fl, struct nfsd4_lock_denied *deny)
struct file_lock *file_lock = NULL;
struct file_lock *conflock = NULL;
file_lock = &nbl->nbl_lock;
file_lock->c.flc_type = type;
file_lock->c.flc_owner = (fl_owner_t)lockowner(nfs4_get_stateowner(&lock_sop->lo_owner));
file_lock->c.flc_pid = current->tgid;
file_lock->c.flc_file = nf->nf_file;
file_lock->c.flc_flags = flags;
file_lock->fl_lmops = &nfsd_posix_mng_ops;
file_lock->fl_start = lock->lk_offset;
file_lock->fl_end = last_byte_offset(lock->lk_offset, lock->lk_length);
nfs4_transform_lock_offset(file_lock);
err = vfs_lock_file(nf->nf_file, F_SETLK, file_lock, conflock);
static __be32 nfsd_test_lock(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file_lock *lock)
struct file_lock *file_lock = NULL;
file_lock = locks_alloc_lock();
if (!file_lock) {
file_lock->c.flc_type = F_RDLCK;
file_lock->c.flc_type = F_WRLCK;
file_lock->c.flc_owner = (fl_owner_t)lo;
file_lock->c.flc_pid = current->tgid;
file_lock->c.flc_flags = FL_POSIX;
file_lock->fl_start = lockt->lt_offset;
file_lock->fl_end = last_byte_offset(lockt->lt_offset, lockt->lt_length);
nfs4_transform_lock_offset(file_lock);
status = nfsd_test_lock(rqstp, &cstate->current_fh, file_lock);
if (file_lock->c.flc_type != F_UNLCK) {
nfs4_set_lock_denied(file_lock, &lockt->lt_denied);
if (file_lock)
locks_free_lock(file_lock);
struct file_lock *file_lock = NULL;
file_lock = locks_alloc_lock();
if (!file_lock) {
file_lock->c.flc_type = F_UNLCK;
file_lock->c.flc_owner = (fl_owner_t)lockowner(nfs4_get_stateowner(stp->st_stateowner));
file_lock->c.flc_pid = current->tgid;
file_lock->c.flc_file = nf->nf_file;
file_lock->c.flc_flags = FL_POSIX;
file_lock->fl_lmops = &nfsd_posix_mng_ops;
file_lock->fl_start = locku->lu_offset;
file_lock->fl_end = last_byte_offset(locku->lu_offset,
nfs4_transform_lock_offset(file_lock);
err = vfs_lock_file(nf->nf_file, F_SETLK, file_lock, NULL);
if (file_lock)
locks_free_lock(file_lock);
struct file_lock *fl;
struct file_lock nbl_lock;
int ocfs2_lock(struct file *file, int cmd, struct file_lock *fl)
int cmd, struct file_lock *fl)
struct file_lock request;
static int ocfs2_do_funlock(struct file *file, int cmd, struct file_lock *fl)
int ocfs2_flock(struct file *file, int cmd, struct file_lock *fl)
int ocfs2_flock(struct file *file, int cmd, struct file_lock *fl);
int ocfs2_lock(struct file *file, int cmd, struct file_lock *fl);
__u8 file_lock;
struct file_lock *fl)
struct file *file, int cmd, struct file_lock *fl)
struct file_lock *fl);
struct file_lock;
struct file *file, int cmd, struct file_lock *fl);
static int orangefs_lock(struct file *filp, int cmd, struct file_lock *fl)
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
int cifs_flock(struct file *file, int cmd, struct file_lock *fl);
int cifs_lock(struct file *file, int cmd, struct file_lock *flock);
static inline u64 cifs_flock_len(const struct file_lock *fl)
int (*mand_unlock_range)(struct cifsFileInfo *, struct file_lock *,
int cifs_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
struct file_lock *pLockData, const __u16 lock_type,
__u8 type, struct file_lock *flock)
cifs_posix_lock_test(struct file *file, struct file_lock *flock)
cifs_posix_lock_set(struct file *file, struct file_lock *flock)
struct file_lock *flock;
cifs_read_flock(struct file_lock *flock, __u32 *type, int *lock, int *unlock,
cifs_getlk(struct file *file, struct file_lock *flock, __u32 type,
cifs_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
cifs_setlk(struct file *file, struct file_lock *flock, __u32 type,
int cifs_flock(struct file *file, int cmd, struct file_lock *fl)
int cifs_lock(struct file *file, int cmd, struct file_lock *flock)
struct file_lock *pLockData, const __u16 lock_type,
smb2_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
int smb2_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
struct file_lock *smb_flock_init(struct file *f)
struct file_lock *fl;
static int smb2_set_flock_flags(struct file_lock *flock, int flags)
static struct ksmbd_lock *smb2_lock_init(struct file_lock *flock,
struct file_lock *flock = (struct file_lock *)argv[0];
static inline bool lock_defer_pending(struct file_lock *fl)
struct file_lock *flock = NULL;
struct file_lock *rlock = NULL;
struct file_lock *smb_flock_init(struct file *f);
void ksmbd_vfs_posix_lock_wait(struct file_lock *flock)
void ksmbd_vfs_posix_lock_unblock(struct file_lock *flock)
struct file_lock *flock;
void ksmbd_vfs_posix_lock_wait(struct file_lock *flock);
void ksmbd_vfs_posix_lock_unblock(struct file_lock *flock);
struct file_lock *fl;
int cmd, struct file_lock *fl);
struct file_lock *fl);
struct file_lock *fl);
struct file_lock *fl);
spinlock_t file_lock ____cacheline_aligned_in_smp;
rcu_dereference_check((fdtfd), lockdep_is_held(&(files)->file_lock))
RCU_LOCKDEP_WARN(!lockdep_is_held(&files->file_lock),
static inline bool lock_is_unlock(struct file_lock *fl)
static inline bool lock_is_read(struct file_lock *fl)
static inline bool lock_is_write(struct file_lock *fl)
static inline void locks_wake_up(struct file_lock *fl)
void locks_free_lock(struct file_lock *fl);
void locks_init_lock(struct file_lock *);
struct file_lock *locks_alloc_lock(void);
void locks_copy_lock(struct file_lock *, struct file_lock *);
void locks_copy_conflock(struct file_lock *, struct file_lock *);
void locks_release_private(struct file_lock *);
void posix_test_lock(struct file *, struct file_lock *);
int posix_lock_file(struct file *, struct file_lock *, struct file_lock *);
int locks_delete_block(struct file_lock *);
int vfs_test_lock(struct file *, struct file_lock *);
int vfs_lock_file(struct file *, unsigned int, struct file_lock *, struct file_lock *);
int vfs_cancel_lock(struct file *filp, struct file_lock *fl);
int locks_lock_inode_wait(struct inode *inode, struct file_lock *fl);
struct file_lock;
static inline bool lock_is_unlock(struct file_lock *fl)
static inline bool lock_is_read(struct file_lock *fl)
static inline bool lock_is_write(struct file_lock *fl)
static inline void locks_wake_up(struct file_lock *fl)
static inline void locks_init_lock(struct file_lock *fl)
void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
static inline void locks_copy_conflock(struct file_lock *new, struct file_lock *fl)
void (*fl_release_private)(struct file_lock *);
static inline void locks_copy_lock(struct file_lock *new, struct file_lock *fl)
static inline void posix_test_lock(struct file *filp, struct file_lock *fl)
static inline int posix_lock_file(struct file *filp, struct file_lock *fl,
struct file_lock *conflock)
static inline int locks_delete_block(struct file_lock *waiter)
static inline int vfs_test_lock(struct file *filp, struct file_lock *fl)
struct file_lock *fl, struct file_lock *conf)
static inline int vfs_cancel_lock(struct file *filp, struct file_lock *fl)
static inline int locks_lock_inode_wait(struct inode *inode, struct file_lock *fl)
void (*lm_notify)(struct file_lock *); /* unblock callback */
int (*lm_grant)(struct file_lock *, int);
bool (*lm_lock_expirable)(struct file_lock *cfl);
static inline int locks_lock_file_wait(struct file *filp, struct file_lock *fl)
struct file_lock;
int (*lock) (struct file *, int, struct file_lock *);
int (*flock) (struct file *, int, struct file_lock *);
extern int nlmclnt_proc(struct nlm_host *host, int cmd, struct file_lock *fl, void *data);
struct file_lock *b_lock; /* local file lock */
struct file_lock *fl);
int nlmclnt_reclaim(struct nlm_host *, struct file_lock *,
int lock_to_openmode(struct file_lock *);
void nlmsvc_locks_init_private(struct file_lock *, struct nlm_host *, pid_t);
static inline int nlm_compare_locks(const struct file_lock *fl1,
const struct file_lock *fl2)
struct file_lock fl;
void nlm4svc_set_file_lock_range(struct file_lock *fl, u64 off, u64 len);
LSM_HOOK(int, 0, file_lock, struct file *file, unsigned int cmd)
int (*lock)(struct file *, int, struct file_lock *);
int (*lock_check_bounds)(const struct file_lock *);
struct file_lock * fl;
struct file_lock * fl;
struct file_lock * fl;
struct file_lock * denied; /* LOCK, LOCKT failed */
TP_PROTO(struct afs_vnode *vnode, struct file_lock *fl,
TP_PROTO(struct afs_vnode *vnode, struct file_lock *fl,
TP_PROTO(struct inode *inode, struct file_lock *fl, int ret),
TP_PROTO(struct inode *inode, struct file_lock *fl, int ret),
TP_PROTO(struct inode *inode, struct file_lock *fl, int ret),
TP_PROTO(struct inode *inode, struct file_lock *fl, int ret),
TP_PROTO(struct inode *inode, struct file_lock *fl, int ret),
__field(struct file_lock *, fl)
spin_lock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_unlock(&files->file_lock);
spin_unlock(&files->file_lock);
LSM_HOOK_INIT(file_lock, apparmor_file_lock),
return call_int_hook(file_lock, file, cmd);
LSM_HOOK_INIT(file_lock, selinux_file_lock),
LSM_HOOK_INIT(file_lock, smack_file_lock),