Commit 274a824c authored by J. R. Okajima's avatar J. R. Okajima
Browse files

Merge branch 'aufs5.x-rcN/01modular' into aufs5.x-rcN/30stdalone

parents 6e23cf0d 1a3d720f
...@@ -162,13 +162,12 @@ static void au_hfsn_free_group(struct fsnotify_group *group) ...@@ -162,13 +162,12 @@ static void au_hfsn_free_group(struct fsnotify_group *group)
static int au_hfsn_handle_event(struct fsnotify_group *group, static int au_hfsn_handle_event(struct fsnotify_group *group,
struct inode *inode, struct inode *inode,
u32 mask, const void *data, int data_type, u32 mask, const void *data, int data_type,
const unsigned char *file_name, u32 cookie, const struct qstr *file_name, u32 cookie,
struct fsnotify_iter_info *iter_info) struct fsnotify_iter_info *iter_info)
{ {
int err; int err;
struct au_hnotify *hnotify; struct au_hnotify *hnotify;
struct inode *h_dir, *h_inode; struct inode *h_dir, *h_inode;
struct qstr h_child_qstr = QSTR_INIT(file_name, strlen(file_name));
struct fsnotify_mark *inode_mark; struct fsnotify_mark *inode_mark;
AuDebugOn(data_type != FSNOTIFY_EVENT_INODE); AuDebugOn(data_type != FSNOTIFY_EVENT_INODE);
...@@ -196,7 +195,7 @@ static int au_hfsn_handle_event(struct fsnotify_group *group, ...@@ -196,7 +195,7 @@ static int au_hfsn_handle_event(struct fsnotify_group *group,
inode_mark = fsnotify_iter_inode_mark(iter_info); inode_mark = fsnotify_iter_inode_mark(iter_info);
AuDebugOn(!inode_mark); AuDebugOn(!inode_mark);
hnotify = container_of(inode_mark, struct au_hnotify, hn_mark); hnotify = container_of(inode_mark, struct au_hnotify, hn_mark);
err = au_hnotify(h_dir, hnotify, mask, &h_child_qstr, h_inode); err = au_hnotify(h_dir, hnotify, mask, file_name, h_inode);
out: out:
return err; return err;
......
...@@ -548,7 +548,7 @@ out: ...@@ -548,7 +548,7 @@ out:
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask, int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask,
struct qstr *h_child_qstr, struct inode *h_child_inode) const struct qstr *h_child_qstr, struct inode *h_child_inode)
{ {
int err, len; int err, len;
unsigned int flags[AuHnLast], f; unsigned int flags[AuHnLast], f;
......
...@@ -613,7 +613,7 @@ void au_hn_free(struct au_hinode *hinode); ...@@ -613,7 +613,7 @@ void au_hn_free(struct au_hinode *hinode);
void au_hn_ctl(struct au_hinode *hinode, int do_set); void au_hn_ctl(struct au_hinode *hinode, int do_set);
void au_hn_reset(struct inode *inode, unsigned int flags); void au_hn_reset(struct inode *inode, unsigned int flags);
int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask, int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask,
struct qstr *h_child_qstr, struct inode *h_child_inode); const struct qstr *h_child_qstr, struct inode *h_child_inode);
int au_hnotify_reset_br(unsigned int udba, struct au_branch *br, int perm); int au_hnotify_reset_br(unsigned int udba, struct au_branch *br, int perm);
int au_hnotify_init_br(struct au_branch *br, int perm); int au_hnotify_init_br(struct au_branch *br, int perm);
void au_hnotify_fin_br(struct au_branch *br); void au_hnotify_fin_br(struct au_branch *br);
......
...@@ -44,18 +44,15 @@ static struct inode *aufs_alloc_inode(struct super_block *sb __maybe_unused) ...@@ -44,18 +44,15 @@ static struct inode *aufs_alloc_inode(struct super_block *sb __maybe_unused)
return NULL; return NULL;
} }
static void aufs_destroy_inode_cb(struct rcu_head *head)
{
struct inode *inode = container_of(head, struct inode, i_rcu);
au_cache_free_icntnr(container_of(inode, struct au_icntnr, vfs_inode));
}
static void aufs_destroy_inode(struct inode *inode) static void aufs_destroy_inode(struct inode *inode)
{ {
if (!au_is_bad_inode(inode)) if (!au_is_bad_inode(inode))
au_iinfo_fin(inode); au_iinfo_fin(inode);
call_rcu(&inode->i_rcu, aufs_destroy_inode_cb); }
static void aufs_free_inode(struct inode *inode)
{
au_cache_free_icntnr(container_of(inode, struct au_icntnr, vfs_inode));
} }
struct inode *au_iget_locked(struct super_block *sb, ino_t ino) struct inode *au_iget_locked(struct super_block *sb, ino_t ino)
...@@ -853,6 +850,7 @@ out: ...@@ -853,6 +850,7 @@ out:
static const struct super_operations aufs_sop = { static const struct super_operations aufs_sop = {
.alloc_inode = aufs_alloc_inode, .alloc_inode = aufs_alloc_inode,
.destroy_inode = aufs_destroy_inode, .destroy_inode = aufs_destroy_inode,
.free_inode = aufs_free_inode,
/* always deleting, no clearing */ /* always deleting, no clearing */
.drop_inode = generic_delete_inode, .drop_inode = generic_delete_inode,
.show_options = aufs_show_options, .show_options = aufs_show_options,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment