Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits) vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp isofs: Remove global fs lock jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory fix IN_DELETE_SELF on overwriting rename() on ramfs et.al. mm/truncate.c: fix build for CONFIG_BLOCK not enabled fs:update the NOTE of the file_operations structure Remove dead code in dget_parent() AFS: Fix silly characters in a comment switch d_add_ci() to d_splice_alias() in "found negative" case as well simplify gfs2_lookup() jfs_lookup(): don't bother with . or .. get rid of useless dget_parent() in btrfs rename() and link() get rid of useless dget_parent() in fs/btrfs/ioctl.c fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers drivers: fix up various ->llseek() implementations fs: handle SEEK_HOLE/SEEK_DATA properly in all fs's that define their own llseek Ext4: handle SEEK_HOLE/SEEK_DATA generically Btrfs: implement our own ->llseek fs: add SEEK_HOLE and SEEK_DATA flags reiserfs: make reiserfs default to barrier=flush ... Fix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new shrinker callout for the inode cache, that clashed with the xfs code to start the periodic workers later.
This commit is contained in:
@@ -673,7 +673,7 @@ static int mounts_open_common(struct inode *inode, struct file *file,
|
||||
p->m.private = p;
|
||||
p->ns = ns;
|
||||
p->root = root;
|
||||
p->event = ns->event;
|
||||
p->m.poll_event = ns->event;
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -2167,9 +2167,9 @@ static const struct file_operations proc_fd_operations = {
|
||||
* /proc/pid/fd needs a special permission handler so that a process can still
|
||||
* access /proc/self/fd after it has executed a setuid().
|
||||
*/
|
||||
static int proc_fd_permission(struct inode *inode, int mask, unsigned int flags)
|
||||
static int proc_fd_permission(struct inode *inode, int mask)
|
||||
{
|
||||
int rv = generic_permission(inode, mask, flags, NULL);
|
||||
int rv = generic_permission(inode, mask);
|
||||
if (rv == 0)
|
||||
return 0;
|
||||
if (task_pid(current) == proc_pid(inode))
|
||||
|
@@ -294,7 +294,7 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int proc_sys_permission(struct inode *inode, int mask,unsigned int flags)
|
||||
static int proc_sys_permission(struct inode *inode, int mask)
|
||||
{
|
||||
/*
|
||||
* sysctl entries that are not writeable,
|
||||
@@ -316,7 +316,7 @@ static int proc_sys_permission(struct inode *inode, int mask,unsigned int flags)
|
||||
if (!table) /* global root - r-xr-xr-x */
|
||||
error = mask & MAY_WRITE ? -EACCES : 0;
|
||||
else /* Use the permissions on the sysctl table entry */
|
||||
error = sysctl_perm(head->root, table, mask);
|
||||
error = sysctl_perm(head->root, table, mask & ~MAY_NOT_BLOCK);
|
||||
|
||||
sysctl_head_finish(head);
|
||||
return error;
|
||||
|
Reference in New Issue
Block a user