locks: pass inode pointer to locks_free_lock_context
...so we can print information about it if there are leaked locks. Signed-off-by: Jeff Layton <jeff.layton@primarydata.com> Acked-by: "J. Bruce Fields" <bfields@fieldses.org>
This commit is contained in:
Родитель
1890910fd0
Коммит
f27a0fe083
|
@ -225,7 +225,7 @@ void __destroy_inode(struct inode *inode)
|
||||||
inode_detach_wb(inode);
|
inode_detach_wb(inode);
|
||||||
security_inode_free(inode);
|
security_inode_free(inode);
|
||||||
fsnotify_inode_delete(inode);
|
fsnotify_inode_delete(inode);
|
||||||
locks_free_lock_context(inode->i_flctx);
|
locks_free_lock_context(inode);
|
||||||
if (!inode->i_nlink) {
|
if (!inode->i_nlink) {
|
||||||
WARN_ON(atomic_long_read(&inode->i_sb->s_remove_count) == 0);
|
WARN_ON(atomic_long_read(&inode->i_sb->s_remove_count) == 0);
|
||||||
atomic_long_dec(&inode->i_sb->s_remove_count);
|
atomic_long_dec(&inode->i_sb->s_remove_count);
|
||||||
|
|
|
@ -234,8 +234,10 @@ out:
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
locks_free_lock_context(struct file_lock_context *ctx)
|
locks_free_lock_context(struct inode *inode)
|
||||||
{
|
{
|
||||||
|
struct file_lock_context *ctx = inode->i_flctx;
|
||||||
|
|
||||||
if (ctx) {
|
if (ctx) {
|
||||||
WARN_ON_ONCE(!list_empty(&ctx->flc_flock));
|
WARN_ON_ONCE(!list_empty(&ctx->flc_flock));
|
||||||
WARN_ON_ONCE(!list_empty(&ctx->flc_posix));
|
WARN_ON_ONCE(!list_empty(&ctx->flc_posix));
|
||||||
|
|
|
@ -1042,7 +1042,7 @@ extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg);
|
||||||
extern int fcntl_getlease(struct file *filp);
|
extern int fcntl_getlease(struct file *filp);
|
||||||
|
|
||||||
/* fs/locks.c */
|
/* fs/locks.c */
|
||||||
void locks_free_lock_context(struct file_lock_context *ctx);
|
void locks_free_lock_context(struct inode *inode);
|
||||||
void locks_free_lock(struct file_lock *fl);
|
void locks_free_lock(struct file_lock *fl);
|
||||||
extern void locks_init_lock(struct file_lock *);
|
extern void locks_init_lock(struct file_lock *);
|
||||||
extern struct file_lock * locks_alloc_lock(void);
|
extern struct file_lock * locks_alloc_lock(void);
|
||||||
|
@ -1103,7 +1103,7 @@ static inline int fcntl_getlease(struct file *filp)
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
locks_free_lock_context(struct file_lock_context *ctx)
|
locks_free_lock_context(struct inode *inode)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче