提交 33ea2f52 编写于 作者: R Robert Love 提交者: Linus Torvalds

[PATCH] inotify: use fget_light

As an optimization, use fget_light() and fput_light() where possible.
Signed-off-by: NRobert Love <rml@novell.com>
Signed-off-by: NJohn McCutchan <ttb@tentacle.dhs.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 b680716e
...@@ -923,10 +923,10 @@ asmlinkage long sys_inotify_add_watch(int fd, const char __user *path, u32 mask) ...@@ -923,10 +923,10 @@ asmlinkage long sys_inotify_add_watch(int fd, const char __user *path, u32 mask)
struct inotify_device *dev; struct inotify_device *dev;
struct nameidata nd; struct nameidata nd;
struct file *filp; struct file *filp;
int ret; int ret, fput_needed;
filp = fget(fd); filp = fget_light(fd, &fput_needed);
if (!filp) if (unlikely(!filp))
return -EBADF; return -EBADF;
ret = find_inode(path, &nd); ret = find_inode(path, &nd);
...@@ -973,7 +973,7 @@ asmlinkage long sys_inotify_add_watch(int fd, const char __user *path, u32 mask) ...@@ -973,7 +973,7 @@ asmlinkage long sys_inotify_add_watch(int fd, const char __user *path, u32 mask)
up(&dev->sem); up(&dev->sem);
up(&inode->inotify_sem); up(&inode->inotify_sem);
fput_and_out: fput_and_out:
fput(filp); fput_light(filp, fput_needed);
return ret; return ret;
} }
...@@ -981,14 +981,14 @@ asmlinkage long sys_inotify_rm_watch(int fd, u32 wd) ...@@ -981,14 +981,14 @@ asmlinkage long sys_inotify_rm_watch(int fd, u32 wd)
{ {
struct file *filp; struct file *filp;
struct inotify_device *dev; struct inotify_device *dev;
int ret; int ret, fput_needed;
filp = fget(fd); filp = fget_light(fd, &fput_needed);
if (!filp) if (unlikely(!filp))
return -EBADF; return -EBADF;
dev = filp->private_data; dev = filp->private_data;
ret = inotify_ignore(dev, wd); ret = inotify_ignore(dev, wd);
fput(filp); fput_light(filp, fput_needed);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册