Commit 4f5ed131 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull misc vfs updates from Al Viro:
 "Assorted stuff"

* 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  perf_event_get(): don't bother with fget_raw()
  vfs: update d_make_root() description
parents d2fbf4b6 02e5ad97
...@@ -428,8 +428,19 @@ release it yourself. ...@@ -428,8 +428,19 @@ release it yourself.
-- --
[mandatory] [mandatory]
d_alloc_root() is gone, along with a lot of bugs caused by code d_alloc_root() is gone, along with a lot of bugs caused by code
misusing it. Replacement: d_make_root(inode). The difference is, misusing it. Replacement: d_make_root(inode). On success d_make_root(inode)
d_make_root() drops the reference to inode if dentry allocation fails. allocates and returns a new dentry instantiated with the passed in inode.
On failure NULL is returned and the passed in inode is dropped so the reference
to inode is consumed in all cases and failure handling need not do any cleanup
for the inode. If d_make_root(inode) is passed a NULL inode it returns NULL
and also requires no further error handling. Typical usage is:
inode = foofs_new_inode(....);
s->s_root = d_make_inode(inode);
if (!s->s_root)
/* Nothing needed for the inode cleanup */
return -ENOMEM;
...
-- --
[mandatory] [mandatory]
......
...@@ -11618,9 +11618,7 @@ void perf_event_delayed_put(struct task_struct *task) ...@@ -11618,9 +11618,7 @@ void perf_event_delayed_put(struct task_struct *task)
struct file *perf_event_get(unsigned int fd) struct file *perf_event_get(unsigned int fd)
{ {
struct file *file; struct file *file = fget(fd);
file = fget_raw(fd);
if (!file) if (!file)
return ERR_PTR(-EBADF); return ERR_PTR(-EBADF);
......
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