projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
genetlink: pass only network namespace to genl_has_listeners()
[cascardo/linux.git]
/
fs
/
inode.c
diff --git
a/fs/inode.c
b/fs/inode.c
index
2ed95f7
..
aa149e7
100644
(file)
--- a/
fs/inode.c
+++ b/
fs/inode.c
@@
-114,6
+114,11
@@
int proc_nr_inodes(struct ctl_table *table, int write,
}
#endif
}
#endif
+static int no_open(struct inode *inode, struct file *file)
+{
+ return -ENXIO;
+}
+
/**
* inode_init_always - perform inode structure intialisation
* @sb: superblock inode belongs to
/**
* inode_init_always - perform inode structure intialisation
* @sb: superblock inode belongs to
@@
-125,7
+130,7
@@
int proc_nr_inodes(struct ctl_table *table, int write,
int inode_init_always(struct super_block *sb, struct inode *inode)
{
static const struct inode_operations empty_iops;
int inode_init_always(struct super_block *sb, struct inode *inode)
{
static const struct inode_operations empty_iops;
- static const struct file_operations
empty_fops
;
+ static const struct file_operations
no_open_fops = {.open = no_open}
;
struct address_space *const mapping = &inode->i_data;
inode->i_sb = sb;
struct address_space *const mapping = &inode->i_data;
inode->i_sb = sb;
@@
-133,7
+138,7
@@
int inode_init_always(struct super_block *sb, struct inode *inode)
inode->i_flags = 0;
atomic_set(&inode->i_count, 1);
inode->i_op = &empty_iops;
inode->i_flags = 0;
atomic_set(&inode->i_count, 1);
inode->i_op = &empty_iops;
- inode->i_fop = &
empty
_fops;
+ inode->i_fop = &
no_open
_fops;
inode->__i_nlink = 1;
inode->i_opflags = 0;
i_uid_write(inode, 0);
inode->__i_nlink = 1;
inode->i_opflags = 0;
i_uid_write(inode, 0);
@@
-346,7
+351,7
@@
void address_space_init_once(struct address_space *mapping)
memset(mapping, 0, sizeof(*mapping));
INIT_RADIX_TREE(&mapping->page_tree, GFP_ATOMIC);
spin_lock_init(&mapping->tree_lock);
memset(mapping, 0, sizeof(*mapping));
INIT_RADIX_TREE(&mapping->page_tree, GFP_ATOMIC);
spin_lock_init(&mapping->tree_lock);
-
mutex_init(&mapping->i_mmap_mutex
);
+
init_rwsem(&mapping->i_mmap_rwsem
);
INIT_LIST_HEAD(&mapping->private_list);
spin_lock_init(&mapping->private_lock);
mapping->i_mmap = RB_ROOT;
INIT_LIST_HEAD(&mapping->private_list);
spin_lock_init(&mapping->private_lock);
mapping->i_mmap = RB_ROOT;
@@
-1798,7
+1803,7
@@
void init_special_inode(struct inode *inode, umode_t mode, dev_t rdev)
} else if (S_ISFIFO(mode))
inode->i_fop = &pipefifo_fops;
else if (S_ISSOCK(mode))
} else if (S_ISFIFO(mode))
inode->i_fop = &pipefifo_fops;
else if (S_ISSOCK(mode))
- inode->i_fop = &bad_sock_fops;
+ ; /* leave it no_open_fops */
else
printk(KERN_DEBUG "init_special_inode: bogus i_mode (%o) for"
" inode %s:%lu\n", mode, inode->i_sb->s_id,
else
printk(KERN_DEBUG "init_special_inode: bogus i_mode (%o) for"
" inode %s:%lu\n", mode, inode->i_sb->s_id,