[PATCH] inotify: use fget_light
As an optimization, use fget_light() and fput_light() where possible. Signed-off-by: Robert Love <rml@novell.com> Signed-off-by: John McCutchan <ttb@tentacle.dhs.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
b680716ed2
commit
33ea2f52b8
16
fs/inotify.c
16
fs/inotify.c
@ -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)
|
|||||||
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)
|
|||||||
{
|
{
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user