tree c6e21e0c3fb0d26c19ead93dfe00b6461cb29c66
parent badf16621c1f9d1ac753be056fce11b43d6e0be5
author Dipankar Sarma <[EMAIL PROTECTED]> Sat, 10 Sep 2005 03:04:12 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Sat, 10 Sep 2005 03:57:55 -0700

[PATCH] files-sparc64-fix 2

Fix sparc64 timod to use the new files_fdtable() api to get the fd table.
This is necessary for RCUification.

Signed-off-by: Dipankar Sarma <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 arch/sparc64/solaris/timod.c |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/arch/sparc64/solaris/timod.c b/arch/sparc64/solaris/timod.c
--- a/arch/sparc64/solaris/timod.c
+++ b/arch/sparc64/solaris/timod.c
@@ -143,9 +143,11 @@ static struct T_primsg *timod_mkctl(int 
 static void timod_wake_socket(unsigned int fd)
 {
        struct socket *sock;
+       struct fdtable *fdt;
 
        SOLD("wakeing socket");
-       sock = SOCKET_I(current->files->fd[fd]->f_dentry->d_inode);
+       fdt = files_fdtable(current->files);
+       sock = SOCKET_I(fdt->fd[fd]->f_dentry->d_inode);
        wake_up_interruptible(&sock->wait);
        read_lock(&sock->sk->sk_callback_lock);
        if (sock->fasync_list && !test_bit(SOCK_ASYNC_WAITDATA, &sock->flags))
@@ -157,9 +159,11 @@ static void timod_wake_socket(unsigned i
 static void timod_queue(unsigned int fd, struct T_primsg *it)
 {
        struct sol_socket_struct *sock;
+       struct fdtable *fdt;
 
        SOLD("queuing primsg");
-       sock = (struct sol_socket_struct *)current->files->fd[fd]->private_data;
+       fdt = files_fdtable(current->files);
+       sock = (struct sol_socket_struct *)fdt->fd[fd]->private_data;
        it->next = sock->pfirst;
        sock->pfirst = it;
        if (!sock->plast)
@@ -171,9 +175,11 @@ static void timod_queue(unsigned int fd,
 static void timod_queue_end(unsigned int fd, struct T_primsg *it)
 {
        struct sol_socket_struct *sock;
+       struct fdtable *fdt;
 
        SOLD("queuing primsg at end");
-       sock = (struct sol_socket_struct *)current->files->fd[fd]->private_data;
+       fdt = files_fdtable(current->files);
+       sock = (struct sol_socket_struct *)fdt->fd[fd]->private_data;
        it->next = NULL;
        if (sock->plast)
                sock->plast->next = it;
@@ -344,6 +350,7 @@ int timod_putmsg(unsigned int fd, char _
        char *buf;
        struct file *filp;
        struct inode *ino;
+       struct fdtable *fdt;
        struct sol_socket_struct *sock;
        mm_segment_t old_fs = get_fs();
        long args[6];
@@ -351,7 +358,9 @@ int timod_putmsg(unsigned int fd, char _
                (int (*)(int, unsigned long __user *))SYS(socketcall);
        int (*sys_sendto)(int, void __user *, size_t, unsigned, struct sockaddr 
__user *, int) =
                (int (*)(int, void __user *, size_t, unsigned, struct sockaddr 
__user *, int))SYS(sendto);
-       filp = current->files->fd[fd];
+
+       fdt = files_fdtable(current->files);
+       filp = fdt->fd[fd];
        ino = filp->f_dentry->d_inode;
        sock = (struct sol_socket_struct *)filp->private_data;
        SOLD("entry");
@@ -620,6 +629,7 @@ int timod_getmsg(unsigned int fd, char _
        int oldflags;
        struct file *filp;
        struct inode *ino;
+       struct fdtable *fdt;
        struct sol_socket_struct *sock;
        struct T_unitdata_ind udi;
        mm_segment_t old_fs = get_fs();
@@ -632,7 +642,8 @@ int timod_getmsg(unsigned int fd, char _
        
        SOLD("entry");
        SOLDD(("%u %p %d %p %p %d %p %d\n", fd, ctl_buf, ctl_maxlen, ctl_len, 
data_buf, data_maxlen, data_len, *flags_p));
-       filp = current->files->fd[fd];
+       fdt = files_fdtable(current->files);
+       filp = fdt->fd[fd];
        ino = filp->f_dentry->d_inode;
        sock = (struct sol_socket_struct *)filp->private_data;
        SOLDD(("%p %p\n", sock->pfirst, sock->pfirst ? sock->pfirst->next : 
NULL));
@@ -844,12 +855,14 @@ asmlinkage int solaris_getmsg(unsigned i
        int __user *flgptr;
        int flags;
        int error = -EBADF;
+       struct fdtable *fdt;
 
        SOLD("entry");
        lock_kernel();
        if(fd >= NR_OPEN) goto out;
 
-       filp = current->files->fd[fd];
+       fdt = files_fdtable(current->files);
+       filp = fdt->fd[fd];
        if(!filp) goto out;
 
        ino = filp->f_dentry->d_inode;
@@ -910,12 +923,14 @@ asmlinkage int solaris_putmsg(unsigned i
        struct strbuf ctl, dat;
        int flags = (int) arg3;
        int error = -EBADF;
+       struct fdtable *fdt;
 
        SOLD("entry");
        lock_kernel();
        if(fd >= NR_OPEN) goto out;
 
-       filp = current->files->fd[fd];
+       fdt = files_fdtable(current->files);
+       filp = fdt->fd[fd];
        if(!filp) goto out;
 
        ino = filp->f_dentry->d_inode;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to