lkml.org 
[lkml]   [2007]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH 03/15] sysfs: fix sysfs_chmod_file() such that it updates sd->s_mode too
    Date
    From
    sysfs_chmod_file() looked and updated only inode of the target file.
    Dentry and inode are reclaimable and the update mode data will go away
    when the inode is reclaimed. This patch makes sysfs_chmod_file()
    update sd->s_mode too such that the change is permanent.

    Signed-off-by: Tejun Heo <htejun@gmail.com>
    ---
    fs/sysfs/file.c | 9 +++++++++
    1 files changed, 9 insertions(+), 0 deletions(-)

    diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
    index ff93c92..9fdf8da 100644
    --- a/fs/sysfs/file.c
    +++ b/fs/sysfs/file.c
    @@ -521,10 +521,19 @@ int sysfs_chmod_file(struct kobject *kobj, struct attribute *attr, mode_t mode)
    }

    inode = victim->d_inode;
    +
    mutex_lock(&inode->i_mutex);
    +
    newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO);
    newattrs.ia_valid = ATTR_MODE | ATTR_CTIME;
    rc = notify_change(victim, &newattrs);
    +
    + if (rc == 0) {
    + mutex_lock(&sysfs_mutex);
    + victim_sd->s_mode = newattrs.ia_mode;
    + mutex_unlock(&sysfs_mutex);
    + }
    +
    mutex_unlock(&inode->i_mutex);
    out:
    dput(victim);
    --
    1.5.0.3

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-09-20 09:07    [W:0.025 / U:59.056 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site