#include "internal.h"
#define AFS_LOCK_GRANTED …
#define AFS_LOCK_PENDING …
#define AFS_LOCK_YOUR_TRY …
struct workqueue_struct *afs_lock_manager;
static void afs_next_locker(struct afs_vnode *vnode, int error);
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 const struct file_lock_operations afs_lock_ops = …;
static inline void afs_set_lock_state(struct afs_vnode *vnode, enum afs_lock_state state)
{ … }
static atomic_t afs_file_lock_debug_id;
void afs_lock_may_be_available(struct afs_vnode *vnode)
{ … }
static void afs_schedule_lock_extension(struct afs_vnode *vnode)
{ … }
void afs_lock_op_done(struct afs_call *call)
{ … }
static void afs_grant_locks(struct afs_vnode *vnode)
{ … }
static void afs_next_locker(struct afs_vnode *vnode, int error)
{ … }
static void afs_kill_lockers_enoent(struct afs_vnode *vnode)
{ … }
static void afs_lock_success(struct afs_operation *op)
{ … }
static const struct afs_operation_ops afs_set_lock_operation = …;
static int afs_set_lock(struct afs_vnode *vnode, struct key *key,
afs_lock_type_t type)
{ … }
static const struct afs_operation_ops afs_extend_lock_operation = …;
static int afs_extend_lock(struct afs_vnode *vnode, struct key *key)
{ … }
static const struct afs_operation_ops afs_release_lock_operation = …;
static int afs_release_lock(struct afs_vnode *vnode, struct key *key)
{ … }
void afs_lock_work(struct work_struct *work)
{ … }
static void afs_defer_unlock(struct afs_vnode *vnode)
{ … }
static int afs_do_setlk_check(struct afs_vnode *vnode, struct key *key,
enum afs_flock_mode mode, afs_lock_type_t type)
{ … }
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)
{ … }