diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2013-05-01 08:47:44 -0700 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2013-05-01 08:47:44 -0700 |
commit | bf61c8840efe60fd8f91446860b63338fb424158 (patch) | |
tree | 7a71832407a4f0d6346db773343f4c3ae2257b19 /drivers/oprofile | |
parent | 5846115b30f3a881e542c8bfde59a699c1c13740 (diff) | |
parent | 0c6a61657da78098472fd0eb71cc01f2387fa1bb (diff) |
Merge branch 'next' into for-linus
Prepare first set of updates for 3.10 merge window.
Diffstat (limited to 'drivers/oprofile')
-rw-r--r-- | drivers/oprofile/oprofilefs.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c index 849357c1045..7c12d9c2b23 100644 --- a/drivers/oprofile/oprofilefs.c +++ b/drivers/oprofile/oprofilefs.c @@ -139,17 +139,22 @@ static int __oprofilefs_create_file(struct super_block *sb, struct dentry *dentry; struct inode *inode; + mutex_lock(&root->d_inode->i_mutex); dentry = d_alloc_name(root, name); - if (!dentry) + if (!dentry) { + mutex_unlock(&root->d_inode->i_mutex); return -ENOMEM; + } inode = oprofilefs_get_inode(sb, S_IFREG | perm); if (!inode) { dput(dentry); + mutex_unlock(&root->d_inode->i_mutex); return -ENOMEM; } inode->i_fop = fops; + inode->i_private = priv; d_add(dentry, inode); - dentry->d_inode->i_private = priv; + mutex_unlock(&root->d_inode->i_mutex); return 0; } @@ -212,17 +217,22 @@ struct dentry *oprofilefs_mkdir(struct super_block *sb, struct dentry *dentry; struct inode *inode; + mutex_lock(&root->d_inode->i_mutex); dentry = d_alloc_name(root, name); - if (!dentry) + if (!dentry) { + mutex_unlock(&root->d_inode->i_mutex); return NULL; + } inode = oprofilefs_get_inode(sb, S_IFDIR | 0755); if (!inode) { dput(dentry); + mutex_unlock(&root->d_inode->i_mutex); return NULL; } inode->i_op = &simple_dir_inode_operations; inode->i_fop = &simple_dir_operations; d_add(dentry, inode); + mutex_unlock(&root->d_inode->i_mutex); return dentry; } @@ -266,6 +276,7 @@ static struct file_system_type oprofilefs_type = { .mount = oprofilefs_mount, .kill_sb = kill_litter_super, }; +MODULE_ALIAS_FS("oprofilefs"); int __init oprofilefs_register(void) |