X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=fs%2Ffcntl.c;h=8e382a5d51bd6f757bd694344465de0711d4afb2;hb=459e536b1ddfd217ec8a3437a3214968a98223c7;hp=e7c66a1bf8310e4728e9560cf4b16688042fc697;hpb=609d7fa9565c754428d2520cac2accc9052e1245;p=powerpc.git diff --git a/fs/fcntl.c b/fs/fcntl.c index e7c66a1bf8..8e382a5d51 100644 --- a/fs/fcntl.c +++ b/fs/fcntl.c @@ -77,10 +77,9 @@ repeat: start = files->next_fd; newfd = start; - if (start < fdt->max_fdset) { + if (start < fdt->max_fds) newfd = find_next_zero_bit(fdt->open_fds->fds_bits, - fdt->max_fdset, start); - } + fdt->max_fds, start); error = -EMFILE; if (newfd >= current->signal->rlim[RLIMIT_NOFILE].rlim_cur) @@ -204,7 +203,7 @@ asmlinkage long sys_dup(unsigned int fildes) static int setfl(int fd, struct file * filp, unsigned long arg) { - struct inode * inode = filp->f_dentry->d_inode; + struct inode * inode = filp->f_path.dentry->d_inode; int error = 0; /* @@ -305,9 +304,11 @@ void f_delown(struct file *filp) pid_t f_getown(struct file *filp) { pid_t pid; + read_lock(&filp->f_owner.lock); pid = pid_nr(filp->f_owner.pid); if (filp->f_owner.pid_type == PIDTYPE_PGID) pid = -pid; + read_unlock(&filp->f_owner.lock); return pid; } @@ -551,7 +552,7 @@ int send_sigurg(struct fown_struct *fown) } static DEFINE_RWLOCK(fasync_lock); -static kmem_cache_t *fasync_cache __read_mostly; +static struct kmem_cache *fasync_cache __read_mostly; /* * fasync_helper() is used by some character device drivers (mainly mice) @@ -565,7 +566,7 @@ int fasync_helper(int fd, struct file * filp, int on, struct fasync_struct **fap int result = 0; if (on) { - new = kmem_cache_alloc(fasync_cache, SLAB_KERNEL); + new = kmem_cache_alloc(fasync_cache, GFP_KERNEL); if (!new) return -ENOMEM; }