Преглед изворни кода

[PATCH] shmem and simple const super_operations

shmem's super_operations were missed from the recent const-ification;
and simple_fill_super()'s, which can share with get_sb_pseudo()'s.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Acked-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Hugh Dickins пре 18 година
родитељ
комит
759b9775c2
2 измењених фајлова са 8 додато и 6 уклоњено
  1. 6 4
      fs/libfs.c
  2. 2 2
      mm/shmem.c

+ 6 - 4
fs/libfs.c

@@ -190,6 +190,10 @@ const struct inode_operations simple_dir_inode_operations = {
 	.lookup		= simple_lookup,
 	.lookup		= simple_lookup,
 };
 };
 
 
+static const struct super_operations simple_super_operations = {
+	.statfs		= simple_statfs,
+};
+
 /*
 /*
  * Common helper for pseudo-filesystems (sockfs, pipefs, bdev - stuff that
  * Common helper for pseudo-filesystems (sockfs, pipefs, bdev - stuff that
  * will never be mountable)
  * will never be mountable)
@@ -199,7 +203,6 @@ int get_sb_pseudo(struct file_system_type *fs_type, char *name,
 	struct vfsmount *mnt)
 	struct vfsmount *mnt)
 {
 {
 	struct super_block *s = sget(fs_type, NULL, set_anon_super, NULL);
 	struct super_block *s = sget(fs_type, NULL, set_anon_super, NULL);
-	static const struct super_operations default_ops = {.statfs = simple_statfs};
 	struct dentry *dentry;
 	struct dentry *dentry;
 	struct inode *root;
 	struct inode *root;
 	struct qstr d_name = {.name = name, .len = strlen(name)};
 	struct qstr d_name = {.name = name, .len = strlen(name)};
@@ -212,7 +215,7 @@ int get_sb_pseudo(struct file_system_type *fs_type, char *name,
 	s->s_blocksize = 1024;
 	s->s_blocksize = 1024;
 	s->s_blocksize_bits = 10;
 	s->s_blocksize_bits = 10;
 	s->s_magic = magic;
 	s->s_magic = magic;
-	s->s_op = ops ? ops : &default_ops;
+	s->s_op = ops ? ops : &simple_super_operations;
 	s->s_time_gran = 1;
 	s->s_time_gran = 1;
 	root = new_inode(s);
 	root = new_inode(s);
 	if (!root)
 	if (!root)
@@ -359,7 +362,6 @@ int simple_commit_write(struct file *file, struct page *page,
 
 
 int simple_fill_super(struct super_block *s, int magic, struct tree_descr *files)
 int simple_fill_super(struct super_block *s, int magic, struct tree_descr *files)
 {
 {
-	static struct super_operations s_ops = {.statfs = simple_statfs};
 	struct inode *inode;
 	struct inode *inode;
 	struct dentry *root;
 	struct dentry *root;
 	struct dentry *dentry;
 	struct dentry *dentry;
@@ -368,7 +370,7 @@ int simple_fill_super(struct super_block *s, int magic, struct tree_descr *files
 	s->s_blocksize = PAGE_CACHE_SIZE;
 	s->s_blocksize = PAGE_CACHE_SIZE;
 	s->s_blocksize_bits = PAGE_CACHE_SHIFT;
 	s->s_blocksize_bits = PAGE_CACHE_SHIFT;
 	s->s_magic = magic;
 	s->s_magic = magic;
-	s->s_op = &s_ops;
+	s->s_op = &simple_super_operations;
 	s->s_time_gran = 1;
 	s->s_time_gran = 1;
 
 
 	inode = new_inode(s);
 	inode = new_inode(s);

+ 2 - 2
mm/shmem.c

@@ -175,7 +175,7 @@ static inline void shmem_unacct_blocks(unsigned long flags, long pages)
 		vm_unacct_memory(pages * VM_ACCT(PAGE_CACHE_SIZE));
 		vm_unacct_memory(pages * VM_ACCT(PAGE_CACHE_SIZE));
 }
 }
 
 
-static struct super_operations shmem_ops;
+static const struct super_operations shmem_ops;
 static const struct address_space_operations shmem_aops;
 static const struct address_space_operations shmem_aops;
 static const struct file_operations shmem_file_operations;
 static const struct file_operations shmem_file_operations;
 static const struct inode_operations shmem_inode_operations;
 static const struct inode_operations shmem_inode_operations;
@@ -2383,7 +2383,7 @@ static const struct inode_operations shmem_special_inode_operations = {
 #endif
 #endif
 };
 };
 
 
-static struct super_operations shmem_ops = {
+static const struct super_operations shmem_ops = {
 	.alloc_inode	= shmem_alloc_inode,
 	.alloc_inode	= shmem_alloc_inode,
 	.destroy_inode	= shmem_destroy_inode,
 	.destroy_inode	= shmem_destroy_inode,
 #ifdef CONFIG_TMPFS
 #ifdef CONFIG_TMPFS