diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-09-11 04:34:46 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-09-11 04:34:46 -0300 |
commit | 863981e96738983919de841ec669e157e6bdaeb0 (patch) | |
tree | d6d89a12e7eb8017837c057935a2271290907f76 /fs/aufs/dbgaufs.c | |
parent | 8dec7c70575785729a6a9e6719a955e9c545bcab (diff) |
Linux-libre 4.7.1-gnupck-4.7.1-gnu
Diffstat (limited to 'fs/aufs/dbgaufs.c')
-rw-r--r-- | fs/aufs/dbgaufs.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/aufs/dbgaufs.c b/fs/aufs/dbgaufs.c index 21ac77398..f85a813a4 100644 --- a/fs/aufs/dbgaufs.c +++ b/fs/aufs/dbgaufs.c @@ -28,7 +28,7 @@ struct dbgaufs_arg { static int dbgaufs_xi_release(struct inode *inode __maybe_unused, struct file *file) { - kfree(file->private_data); + au_delayed_kfree(file->private_data); return 0; } @@ -90,7 +90,7 @@ struct dbgaufs_plink_arg { static int dbgaufs_plink_release(struct inode *inode __maybe_unused, struct file *file) { - free_page((unsigned long)file->private_data); + au_delayed_free_page((unsigned long)file->private_data); return 0; } @@ -154,7 +154,7 @@ static int dbgaufs_plink_open(struct inode *inode, struct file *file) goto out; /* success */ out_free: - free_page((unsigned long)p); + au_delayed_free_page((unsigned long)p); out: return err; } @@ -281,8 +281,11 @@ void dbgaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex) br = au_sbr(sb, bindex); xi = &br->br_xino; AuDebugOn(xi->xi_dbgaufs); + /* debugfs acquires the parent i_mutex */ + lockdep_off(); xi->xi_dbgaufs = debugfs_create_file(name, dbgaufs_mode, parent, sbinfo, &dbgaufs_xino_fop); + lockdep_on(); /* ignore an error */ if (unlikely(!xi->xi_dbgaufs)) AuWarn1("failed %s under debugfs\n", name); |