lkml.org 
[lkml]   [2011]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/5] fsnotify: pass inode/mount as a parameter to fsnotify_destroy_[inode|vfsmount]_mark()
    Date
    Pass the fsobject (inode/mount) as a parameter to fsnotify_destroy_[inode|vfsmount]_mark()
    instead of taking it from the passed mark.

    Signed-off-by: Lino Sanfilippo <LinoSanfilippo@gmx.de>
    ---
    fs/notify/fsnotify.h | 6 ++++--
    fs/notify/inode_mark.c | 5 ++---
    fs/notify/mark.c | 8 ++++----
    fs/notify/vfsmount_mark.c | 5 ++---
    4 files changed, 12 insertions(+), 12 deletions(-)

    diff --git a/fs/notify/fsnotify.h b/fs/notify/fsnotify.h
    index 85e7d2b..8e2fc42 100644
    --- a/fs/notify/fsnotify.h
    +++ b/fs/notify/fsnotify.h
    @@ -27,9 +27,11 @@ extern int fsnotify_add_vfsmount_mark(struct fsnotify_mark *mark,
    extern void fsnotify_final_destroy_group(struct fsnotify_group *group);

    /* vfsmount specific destruction of a mark */
    -extern void fsnotify_destroy_vfsmount_mark(struct fsnotify_mark *mark);
    +extern void fsnotify_destroy_vfsmount_mark(struct fsnotify_mark *mark,
    + struct vfsmount *mnt);
    /* inode specific destruction of a mark */
    -extern void fsnotify_destroy_inode_mark(struct fsnotify_mark *mark);
    +extern void fsnotify_destroy_inode_mark(struct fsnotify_mark *mark,
    + struct inode *inode);
    /* run the list of all marks associated with inode and flag them to be freed */
    extern void fsnotify_clear_marks_by_inode(struct inode *inode);
    /* run the list of all marks associated with vfsmount and flag them to be freed */
    diff --git a/fs/notify/inode_mark.c b/fs/notify/inode_mark.c
    index 168a242..a9b8661 100644
    --- a/fs/notify/inode_mark.c
    +++ b/fs/notify/inode_mark.c
    @@ -58,10 +58,9 @@ void fsnotify_recalc_inode_mask(struct inode *inode)
    __fsnotify_update_child_dentry_flags(inode);
    }

    -void fsnotify_destroy_inode_mark(struct fsnotify_mark *mark)
    +void fsnotify_destroy_inode_mark(struct fsnotify_mark *mark,
    + struct inode *inode)
    {
    - struct inode *inode = mark->i.inode;
    -
    assert_spin_locked(&mark->lock);

    spin_lock(&inode->i_lock);
    diff --git a/fs/notify/mark.c b/fs/notify/mark.c
    index 422de6e..6d9bf1d 100644
    --- a/fs/notify/mark.c
    +++ b/fs/notify/mark.c
    @@ -131,9 +131,9 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)

    if (mark->flags & FSNOTIFY_MARK_FLAG_INODE) {
    inode = mark->i.inode;
    - fsnotify_destroy_inode_mark(mark);
    + fsnotify_destroy_inode_mark(mark, inode);
    } else if (mark->flags & FSNOTIFY_MARK_FLAG_VFSMOUNT)
    - fsnotify_destroy_vfsmount_mark(mark);
    + fsnotify_destroy_vfsmount_mark(mark, mark->m.mnt);
    else
    BUG();
    spin_unlock(&mark->lock);
    @@ -290,9 +290,9 @@ void fsnotify_remove_mark_locked(struct fsnotify_mark *mark,

    if (mark->flags & FSNOTIFY_MARK_FLAG_INODE) {
    inode = mark->i.inode;
    - fsnotify_destroy_inode_mark(mark);
    + fsnotify_destroy_inode_mark(mark, inode);
    } else if (mark->flags & FSNOTIFY_MARK_FLAG_VFSMOUNT)
    - fsnotify_destroy_vfsmount_mark(mark);
    + fsnotify_destroy_vfsmount_mark(mark, mark->m.mnt);
    else
    BUG();
    spin_unlock(&mark->lock);
    diff --git a/fs/notify/vfsmount_mark.c b/fs/notify/vfsmount_mark.c
    index c43c310..b33e78b 100644
    --- a/fs/notify/vfsmount_mark.c
    +++ b/fs/notify/vfsmount_mark.c
    @@ -82,10 +82,9 @@ void fsnotify_recalc_vfsmount_mask(struct vfsmount *mnt)
    spin_unlock(&mnt->mnt_root->d_lock);
    }

    -void fsnotify_destroy_vfsmount_mark(struct fsnotify_mark *mark)
    +void fsnotify_destroy_vfsmount_mark(struct fsnotify_mark *mark,
    + struct vfsmount *mnt)
    {
    - struct vfsmount *mnt = mark->m.mnt;
    -
    assert_spin_locked(&mark->lock);

    spin_lock(&mnt->mnt_root->d_lock);
    --
    1.7.1


    \
     
     \ /
      Last update: 2011-02-21 18:41    [W:0.025 / U:59.772 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site