get rid of NR_OPEN and introduce a sysctl_nr_open
[deliverable/linux.git] / arch / mips / kernel / sysirix.c
index 5407b784cd01abd2a42f769d0c345e75514acfaa..22fd41e946b28c3d9e2a8a853c4951bcada5b629 100644 (file)
@@ -31,6 +31,7 @@
 #include <linux/socket.h>
 #include <linux/security.h>
 #include <linux/syscalls.h>
+#include <linux/resource.h>
 
 #include <asm/ptrace.h>
 #include <asm/page.h>
@@ -235,7 +236,6 @@ asmlinkage int irix_prctl(unsigned option, ...)
 #undef DEBUG_PROCGRPS
 
 extern unsigned long irix_mapelf(int fd, struct elf_phdr __user *user_phdrp, int cnt);
-extern int getrusage(struct task_struct *p, int who, struct rusage __user *ru);
 extern char *prom_getenv(char *name);
 extern long prom_setenv(char *name, char *value);
 
@@ -356,7 +356,7 @@ asmlinkage int irix_syssgi(struct pt_regs *regs)
                        retval = NGROUPS_MAX;
                        goto out;
                case 5:
-                       retval = NR_OPEN;
+                       retval = sysctl_nr_open;
                        goto out;
                case 6:
                        retval = 1;
@@ -486,10 +486,10 @@ asmlinkage int irix_syssgi(struct pt_regs *regs)
 
                switch (arg1) {
                case SGI_INV_SIZEOF:
-                       retval = sizeof (inventory_t);
+                       retval = sizeof(inventory_t);
                        break;
                case SGI_INV_READ:
-                       retval = dump_inventory_to_user (buffer, count);
+                       retval = dump_inventory_to_user(buffer, count);
                        break;
                default:
                        retval = -EINVAL;
@@ -669,7 +669,7 @@ asmlinkage int irix_mount(char __user *dev_name, char __user *dir_name,
 
 struct irix_statfs {
        short f_type;
-        long  f_bsize, f_frsize, f_blocks, f_bfree, f_files, f_ffree;
+       long  f_bsize, f_frsize, f_blocks, f_bfree, f_files, f_ffree;
        char  f_fname[6], f_fpack[6];
 };
 
@@ -694,7 +694,7 @@ asmlinkage int irix_statfs(const char __user *path,
        if (error)
                goto out;
 
-       error = vfs_statfs(nd.dentry->d_inode->i_sb, &kbuf);
+       error = vfs_statfs(nd.dentry, &kbuf);
        if (error)
                goto dput_and_out;
 
@@ -732,7 +732,7 @@ asmlinkage int irix_fstatfs(unsigned int fd, struct irix_statfs __user *buf)
                goto out;
        }
 
-       error = vfs_statfs(file->f_dentry->d_inode->i_sb, &kbuf);
+       error = vfs_statfs(file->f_path.dentry, &kbuf);
        if (error)
                goto out_f;
 
@@ -763,11 +763,11 @@ asmlinkage int irix_setpgrp(int flags)
        printk("[%s:%d] setpgrp(%d) ", current->comm, current->pid, flags);
 #endif
        if(!flags)
-               error = process_group(current);
+               error = task_pgrp_nr(current);
        else
                error = sys_setsid();
 #ifdef DEBUG_PROCGRPS
-       printk("returning %d\n", process_group(current));
+       printk("returning %d\n", task_pgrp_nr(current));
 #endif
 
        return error;
@@ -778,7 +778,7 @@ asmlinkage int irix_times(struct tms __user *tbuf)
        int err = 0;
 
        if (tbuf) {
-               if (!access_ok(VERIFY_WRITE,tbuf,sizeof *tbuf))
+               if (!access_ok(VERIFY_WRITE, tbuf, sizeof *tbuf))
                        return -EFAULT;
 
                err = __put_user(current->utime, &tbuf->tms_utime);
@@ -884,7 +884,7 @@ asmlinkage int irix_getdomainname(char __user *name, int len)
        down_read(&uts_sem);
        if (len > __NEW_UTS_LEN)
                len = __NEW_UTS_LEN;
-       err = copy_to_user(name, system_utsname.domainname, len) ? -EFAULT : 0;
+       err = copy_to_user(name, utsname()->domainname, len) ? -EFAULT : 0;
        up_read(&uts_sem);
 
        return err;
@@ -959,7 +959,7 @@ static inline loff_t llseek(struct file *file, loff_t offset, int origin)
 
        fn = default_llseek;
        if (file->f_op && file->f_op->llseek)
-        fn = file->f_op->llseek;
+       fn = file->f_op->llseek;
        lock_kernel();
        retval = fn(file, offset, origin);
        unlock_kernel();
@@ -1041,10 +1041,10 @@ asmlinkage unsigned long irix_mmap32(unsigned long addr, size_t len, int prot,
                        unsigned long old_pos;
                        long max_size = offset + len;
 
-                       if (max_size > file->f_dentry->d_inode->i_size) {
-                               old_pos = sys_lseek (fd, max_size - 1, 0);
-                               sys_write (fd, (void __user *) "", 1);
-                               sys_lseek (fd, old_pos, 0);
+                       if (max_size > file->f_path.dentry->d_inode->i_size) {
+                               old_pos = sys_lseek(fd, max_size - 1, 0);
+                               sys_write(fd, (void __user *) "", 1);
+                               sys_lseek(fd, old_pos, 0);
                        }
                }
        }
@@ -1127,11 +1127,11 @@ struct iuname {
 asmlinkage int irix_uname(struct iuname __user *buf)
 {
        down_read(&uts_sem);
-       if (copy_from_user(system_utsname.sysname, buf->sysname, 65)
-           || copy_from_user(system_utsname.nodename, buf->nodename, 65)
-           || copy_from_user(system_utsname.release, buf->release, 65)
-           || copy_from_user(system_utsname.version, buf->version, 65)
-           || copy_from_user(system_utsname.machine, buf->machine, 65)) {
+       if (copy_from_user(utsname()->sysname, buf->sysname, 65)
+           || copy_from_user(utsname()->nodename, buf->nodename, 65)
+           || copy_from_user(utsname()->release, buf->release, 65)
+           || copy_from_user(utsname()->version, buf->version, 65)
+           || copy_from_user(utsname()->machine, buf->machine, 65)) {
                return -EFAULT;
        }
        up_read(&uts_sem);
@@ -1176,7 +1176,7 @@ static int irix_xstat32_xlate(struct kstat *stat, void __user *ubuf)
        ub.st_ctime1  = stat->atime.tv_nsec;
        ub.st_blksize = stat->blksize;
        ub.st_blocks  = stat->blocks;
-       strcpy (ub.st_fstype, "efs");
+       strcpy(ub.st_fstype, "efs");
 
        return copy_to_user(ubuf, &ub, sizeof(ub)) ? -EFAULT : 0;
 }
@@ -1208,7 +1208,7 @@ static int irix_xstat64_xlate(struct kstat *stat, void __user *ubuf)
        ks.st_nlink = (u32) stat->nlink;
        ks.st_uid = (s32) stat->uid;
        ks.st_gid = (s32) stat->gid;
-       ks.st_rdev = sysv_encode_dev (stat->rdev);
+       ks.st_rdev = sysv_encode_dev(stat->rdev);
        ks.st_pad2[0] = ks.st_pad2[1] = 0;
        ks.st_size = (long long) stat->size;
        ks.st_pad3 = 0;
@@ -1360,7 +1360,7 @@ asmlinkage int irix_statvfs(char __user *fname, struct irix_statvfs __user *buf)
        error = user_path_walk(fname, &nd);
        if (error)
                goto out;
-       error = vfs_statfs(nd.dentry->d_inode->i_sb, &kbuf);
+       error = vfs_statfs(nd.dentry, &kbuf);
        if (error)
                goto dput_and_out;
 
@@ -1406,7 +1406,7 @@ asmlinkage int irix_fstatvfs(int fd, struct irix_statvfs __user *buf)
                error = -EBADF;
                goto out;
        }
-       error = vfs_statfs(file->f_dentry->d_inode->i_sb, &kbuf);
+       error = vfs_statfs(file->f_path.dentry, &kbuf);
        if (error)
                goto out_f;
 
@@ -1526,10 +1526,10 @@ asmlinkage int irix_mmap64(struct pt_regs *regs)
                        unsigned long old_pos;
                        long max_size = off2 + len;
 
-                       if (max_size > file->f_dentry->d_inode->i_size) {
-                               old_pos = sys_lseek (fd, max_size - 1, 0);
-                               sys_write (fd, (void __user *) "", 1);
-                               sys_lseek (fd, old_pos, 0);
+                       if (max_size > file->f_path.dentry->d_inode->i_size) {
+                               old_pos = sys_lseek(fd, max_size - 1, 0);
+                               sys_write(fd, (void __user *) "", 1);
+                               sys_lseek(fd, old_pos, 0);
                        }
                }
        }
@@ -1611,7 +1611,7 @@ asmlinkage int irix_statvfs64(char __user *fname, struct irix_statvfs64 __user *
        error = user_path_walk(fname, &nd);
        if (error)
                goto out;
-       error = vfs_statfs(nd.dentry->d_inode->i_sb, &kbuf);
+       error = vfs_statfs(nd.dentry, &kbuf);
        if (error)
                goto dput_and_out;
 
@@ -1658,7 +1658,7 @@ asmlinkage int irix_fstatvfs64(int fd, struct irix_statvfs __user *buf)
                error = -EBADF;
                goto out;
        }
-       error = vfs_statfs(file->f_dentry->d_inode->i_sb, &kbuf);
+       error = vfs_statfs(file->f_path.dentry, &kbuf);
        if (error)
                goto out_f;
 
@@ -1739,12 +1739,13 @@ struct irix_dirent32_callback {
 #define ROUND_UP32(x) (((x)+sizeof(u32)-1) & ~(sizeof(u32)-1))
 
 static int irix_filldir32(void *__buf, const char *name,
-       int namlen, loff_t offset, ino_t ino, unsigned int d_type)
+       int namlen, loff_t offset, u64 ino, unsigned int d_type)
 {
        struct irix_dirent32 __user *dirent;
        struct irix_dirent32_callback *buf = __buf;
        unsigned short reclen = ROUND_UP32(NAME_OFFSET32(dirent) + namlen + 1);
        int err = 0;
+       u32 d_ino;
 
 #ifdef DEBUG_GETDENTS
        printk("\nirix_filldir32[reclen<%d>namlen<%d>count<%d>]",
@@ -1753,12 +1754,15 @@ static int irix_filldir32(void *__buf, const char *name,
        buf->error = -EINVAL;   /* only used if we fail.. */
        if (reclen > buf->count)
                return -EINVAL;
+       d_ino = ino;
+       if (sizeof(d_ino) < sizeof(ino) && d_ino != ino)
+               return -EOVERFLOW;
        dirent = buf->previous;
        if (dirent)
                err = __put_user(offset, &dirent->d_off);
        dirent = buf->current_dir;
        err |= __put_user(dirent, &buf->previous);
-       err |= __put_user(ino, &dirent->d_ino);
+       err |= __put_user(d_ino, &dirent->d_ino);
        err |= __put_user(reclen, &dirent->d_reclen);
        err |= copy_to_user((char __user *)dirent->d_name, name, namlen) ? -EFAULT : 0;
        err |= __put_user(0, &dirent->d_name[namlen]);
@@ -1837,7 +1841,7 @@ struct irix_dirent64_callback {
 #define ROUND_UP64(x) (((x)+sizeof(u64)-1) & ~(sizeof(u64)-1))
 
 static int irix_filldir64(void *__buf, const char *name,
-       int namlen, loff_t offset, ino_t ino, unsigned int d_type)
+       int namlen, loff_t offset, u64 ino, unsigned int d_type)
 {
        struct irix_dirent64 __user *dirent;
        struct irix_dirent64_callback * buf = __buf;
This page took 0.037615 seconds and 5 git commands to generate.