[PATCH] files: lock-free fd look-up
With the use of RCU in files structure, the look-up of files using fds can now be lock-free. The lookup is protected by rcu_read_lock()/rcu_read_unlock(). This patch changes the readers to use lock-free lookup. Signed-off-by: Maneesh Soni <maneesh@in.ibm.com> Signed-off-by: Ravikiran Thirumalai <kiran_th@gmail.com> Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
ab2af1f500
commit
b835996f62
@@ -14,6 +14,7 @@
|
||||
#include <linux/syscalls.h>
|
||||
#include <linux/tty.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/rcupdate.h>
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/ioctl.h>
|
||||
@@ -33,7 +34,7 @@ static struct tty_struct *get_tty(int fd)
|
||||
struct file *filp;
|
||||
struct tty_struct *ttyp = NULL;
|
||||
|
||||
spin_lock(¤t->files->file_lock);
|
||||
rcu_read_lock();
|
||||
filp = fcheck(fd);
|
||||
if(filp && filp->private_data) {
|
||||
ttyp = (struct tty_struct *) filp->private_data;
|
||||
@@ -41,7 +42,7 @@ static struct tty_struct *get_tty(int fd)
|
||||
if(ttyp->magic != TTY_MAGIC)
|
||||
ttyp =NULL;
|
||||
}
|
||||
spin_unlock(¤t->files->file_lock);
|
||||
rcu_read_unlock();
|
||||
return ttyp;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user