Revert "filelock: add a new locks_inode_context accessor function"
This reverts commit b680f89053
.
This commit is contained in:
parent
bfc0293419
commit
8efaad0786
2 changed files with 12 additions and 26 deletions
24
fs/locks.c
24
fs/locks.c
|
@ -251,7 +251,7 @@ locks_get_lock_context(struct inode *inode, int type)
|
|||
struct file_lock_context *ctx;
|
||||
|
||||
/* paired with cmpxchg() below */
|
||||
ctx = locks_inode_context(inode);
|
||||
ctx = smp_load_acquire(&inode->i_flctx);
|
||||
if (likely(ctx) || type == F_UNLCK)
|
||||
goto out;
|
||||
|
||||
|
@ -270,7 +270,7 @@ locks_get_lock_context(struct inode *inode, int type)
|
|||
*/
|
||||
if (cmpxchg(&inode->i_flctx, NULL, ctx)) {
|
||||
kmem_cache_free(flctx_cache, ctx);
|
||||
ctx = locks_inode_context(inode);
|
||||
ctx = smp_load_acquire(&inode->i_flctx);
|
||||
}
|
||||
out:
|
||||
trace_locks_get_lock_context(inode, type, ctx);
|
||||
|
@ -323,7 +323,7 @@ locks_check_ctx_file_list(struct file *filp, struct list_head *list,
|
|||
void
|
||||
locks_free_lock_context(struct inode *inode)
|
||||
{
|
||||
struct file_lock_context *ctx = locks_inode_context(inode);
|
||||
struct file_lock_context *ctx = inode->i_flctx;
|
||||
|
||||
if (unlikely(ctx)) {
|
||||
locks_check_ctx_lists(inode);
|
||||
|
@ -983,7 +983,7 @@ posix_test_lock(struct file *filp, struct file_lock *fl)
|
|||
struct file_lock_context *ctx;
|
||||
struct inode *inode = locks_inode(filp);
|
||||
|
||||
ctx = locks_inode_context(inode);
|
||||
ctx = smp_load_acquire(&inode->i_flctx);
|
||||
if (!ctx || list_empty_careful(&ctx->flc_posix)) {
|
||||
fl->fl_type = F_UNLCK;
|
||||
return;
|
||||
|
@ -1647,7 +1647,7 @@ int __break_lease(struct inode *inode, unsigned int mode, unsigned int type)
|
|||
new_fl->fl_flags = type;
|
||||
|
||||
/* typically we will check that ctx is non-NULL before calling */
|
||||
ctx = locks_inode_context(inode);
|
||||
ctx = smp_load_acquire(&inode->i_flctx);
|
||||
if (!ctx) {
|
||||
WARN_ON_ONCE(1);
|
||||
goto free_lock;
|
||||
|
@ -1752,7 +1752,7 @@ void lease_get_mtime(struct inode *inode, struct timespec64 *time)
|
|||
struct file_lock_context *ctx;
|
||||
struct file_lock *fl;
|
||||
|
||||
ctx = locks_inode_context(inode);
|
||||
ctx = smp_load_acquire(&inode->i_flctx);
|
||||
if (ctx && !list_empty_careful(&ctx->flc_lease)) {
|
||||
spin_lock(&ctx->flc_lock);
|
||||
fl = list_first_entry_or_null(&ctx->flc_lease,
|
||||
|
@ -1798,7 +1798,7 @@ int fcntl_getlease(struct file *filp)
|
|||
int type = F_UNLCK;
|
||||
LIST_HEAD(dispose);
|
||||
|
||||
ctx = locks_inode_context(inode);
|
||||
ctx = smp_load_acquire(&inode->i_flctx);
|
||||
if (ctx && !list_empty_careful(&ctx->flc_lease)) {
|
||||
percpu_down_read(&file_rwsem);
|
||||
spin_lock(&ctx->flc_lock);
|
||||
|
@ -1987,7 +1987,7 @@ static int generic_delete_lease(struct file *filp, void *owner)
|
|||
struct file_lock_context *ctx;
|
||||
LIST_HEAD(dispose);
|
||||
|
||||
ctx = locks_inode_context(inode);
|
||||
ctx = smp_load_acquire(&inode->i_flctx);
|
||||
if (!ctx) {
|
||||
trace_generic_delete_lease(inode, NULL);
|
||||
return error;
|
||||
|
@ -2738,7 +2738,7 @@ void locks_remove_posix(struct file *filp, fl_owner_t owner)
|
|||
* posix_lock_file(). Another process could be setting a lock on this
|
||||
* file at the same time, but we wouldn't remove that lock anyway.
|
||||
*/
|
||||
ctx = locks_inode_context(inode);
|
||||
ctx = smp_load_acquire(&inode->i_flctx);
|
||||
if (!ctx || list_empty(&ctx->flc_posix))
|
||||
return;
|
||||
|
||||
|
@ -2811,7 +2811,7 @@ void locks_remove_file(struct file *filp)
|
|||
{
|
||||
struct file_lock_context *ctx;
|
||||
|
||||
ctx = locks_inode_context(locks_inode(filp));
|
||||
ctx = smp_load_acquire(&locks_inode(filp)->i_flctx);
|
||||
if (!ctx)
|
||||
return;
|
||||
|
||||
|
@ -2858,7 +2858,7 @@ bool vfs_inode_has_locks(struct inode *inode)
|
|||
struct file_lock_context *ctx;
|
||||
bool ret;
|
||||
|
||||
ctx = locks_inode_context(inode);
|
||||
ctx = smp_load_acquire(&inode->i_flctx);
|
||||
if (!ctx)
|
||||
return false;
|
||||
|
||||
|
@ -3003,7 +3003,7 @@ void show_fd_locks(struct seq_file *f,
|
|||
struct file_lock_context *ctx;
|
||||
int id = 0;
|
||||
|
||||
ctx = locks_inode_context(inode);
|
||||
ctx = smp_load_acquire(&inode->i_flctx);
|
||||
if (!ctx)
|
||||
return;
|
||||
|
||||
|
|
|
@ -1199,13 +1199,6 @@ extern void show_fd_locks(struct seq_file *f,
|
|||
struct file *filp, struct files_struct *files);
|
||||
extern bool locks_owner_has_blockers(struct file_lock_context *flctx,
|
||||
fl_owner_t owner);
|
||||
|
||||
static inline struct file_lock_context *
|
||||
locks_inode_context(const struct inode *inode)
|
||||
{
|
||||
return smp_load_acquire(&inode->i_flctx);
|
||||
}
|
||||
|
||||
#else /* !CONFIG_FILE_LOCKING */
|
||||
static inline int fcntl_getlk(struct file *file, unsigned int cmd,
|
||||
struct flock __user *user)
|
||||
|
@ -1351,13 +1344,6 @@ static inline bool locks_owner_has_blockers(struct file_lock_context *flctx,
|
|||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline struct file_lock_context *
|
||||
locks_inode_context(const struct inode *inode)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif /* !CONFIG_FILE_LOCKING */
|
||||
|
||||
static inline struct inode *file_inode(const struct file *f)
|
||||
|
|
Loading…
Add table
Reference in a new issue