yaffs: Clean up yaffs VFS glue code.
[yaffs2.git] / yaffs_vfs_single.c
index 146aaef57e0e5417b2bda0df748f8890e0116b7e..89c03fd4418e224fc7c861dc735ff25258f07780 100644 (file)
@@ -163,12 +163,12 @@ static int yaffs_readpage(struct file *file, struct page *page);
 static int yaffs_writepage(struct page *page, struct writeback_control *wbc);
 
 #ifdef CONFIG_YAFFS_XATTR
-int yaffs_setxattr(struct dentry *dentry, const char *name,
+static int yaffs_setxattr(struct dentry *dentry, const char *name,
                   const void *value, size_t size, int flags);
-ssize_t yaffs_getxattr(struct dentry *dentry, const char *name, void *buff,
+static ssize_t yaffs_getxattr(struct dentry *dentry, const char *name, void *buff,
                       size_t size);
-int yaffs_removexattr(struct dentry *dentry, const char *name);
-ssize_t yaffs_listxattr(struct dentry *dentry, char *buff, size_t size);
+static int yaffs_removexattr(struct dentry *dentry, const char *name);
+static ssize_t yaffs_listxattr(struct dentry *dentry, char *buff, size_t size);
 #endif
 
 static int yaffs_write_begin(struct file *filp, struct address_space *mapping,
@@ -185,8 +185,6 @@ static void *yaffs_follow_link(struct dentry *dentry, struct nameidata *nd);
 
 static void yaffs_touch_super(struct yaffs_dev *dev);
 
-static loff_t yaffs_dir_llseek(struct file *file, loff_t offset, int origin);
-
 static int yaffs_vfs_setattr(struct inode *, struct iattr *);
 
 static struct address_space_operations yaffs_file_address_operations = {
@@ -255,7 +253,7 @@ static const struct file_operations yaffs_dir_operations = {
        .read = generic_read_dir,
        .readdir = yaffs_readdir,
        .fsync = yaffs_sync_object,
-       .llseek = yaffs_dir_llseek,
+       .llseek = generic_file_llseek,
 };
 
 static const struct super_operations yaffs_super_ops = {
@@ -1126,31 +1124,6 @@ static void yaffs_release_space(struct file *f)
        yaffs_gross_unlock(dev);
 }
 
-static loff_t yaffs_dir_llseek(struct file *file, loff_t offset, int origin)
-{
-       long long retval;
-
-       lock_kernel();
-
-       switch (origin) {
-       case 2:
-               offset += i_size_read(file->f_path.dentry->d_inode);
-               break;
-       case 1:
-               offset += file->f_pos;
-       }
-       retval = -EINVAL;
-
-       if (offset >= 0) {
-               if (offset != file->f_pos)
-                       file->f_pos = offset;
-
-               retval = offset;
-       }
-       unlock_kernel();
-       return retval;
-}
-
 static int yaffs_readdir(struct file *f, void *dirent, filldir_t filldir)
 {
        struct yaffs_obj *obj;
@@ -1583,7 +1556,7 @@ static int yaffs_setattr(struct dentry *dentry, struct iattr *attr)
 }
 
 #ifdef CONFIG_YAFFS_XATTR
-int yaffs_setxattr(struct dentry *dentry, const char *name,
+static int yaffs_setxattr(struct dentry *dentry, const char *name,
                   const void *value, size_t size, int flags)
 {
        struct inode *inode = dentry->d_inode;
@@ -1610,7 +1583,7 @@ int yaffs_setxattr(struct dentry *dentry, const char *name,
        return error;
 }
 
-ssize_t yaffs_getxattr(struct dentry * dentry, const char *name, void *buff,
+static ssize_t yaffs_getxattr(struct dentry * dentry, const char *name, void *buff,
                       size_t size)
 {
        struct inode *inode = dentry->d_inode;
@@ -1633,7 +1606,7 @@ ssize_t yaffs_getxattr(struct dentry * dentry, const char *name, void *buff,
        return error;
 }
 
-int yaffs_removexattr(struct dentry *dentry, const char *name)
+static int yaffs_removexattr(struct dentry *dentry, const char *name)
 {
        struct inode *inode = dentry->d_inode;
        int error = 0;
@@ -1661,7 +1634,7 @@ int yaffs_removexattr(struct dentry *dentry, const char *name)
        return error;
 }
 
-ssize_t yaffs_listxattr(struct dentry * dentry, char *buff, size_t size)
+static ssize_t yaffs_listxattr(struct dentry * dentry, char *buff, size_t size)
 {
        struct inode *inode = dentry->d_inode;
        int error = 0;
@@ -2432,10 +2405,6 @@ static struct super_block *yaffs_internal_read_super(int yaffs_version,
        param->use_nand_ecc = 1;
 #endif
 
-#ifdef CONFIG_YAFFS_DISABLE_WIDE_TNODES
-       param->wide_tnodes_disabled = 1;
-#endif
-
        param->skip_checkpt_rd = options.skip_checkpoint_read;
        param->skip_checkpt_wr = options.skip_checkpoint_write;
 
@@ -2560,7 +2529,6 @@ static struct file_system_type yaffs2_fs_type = {
 #endif /* CONFIG_YAFFS_YAFFS2 */
 
 static struct proc_dir_entry *my_proc_entry;
-static struct proc_dir_entry *debug_proc_entry;
 
 static char *yaffs_dump_dev_part0(char *buf, struct yaffs_dev *dev)
 {
@@ -2707,36 +2675,6 @@ static int yaffs_proc_read(char *page,
        return buf - page < count ? buf - page : count;
 }
 
-static int yaffs_stats_proc_read(char *page,
-                                char **start,
-                                off_t offset, int count, int *eof, void *data)
-{
-       struct list_head *item;
-       char *buf = page;
-       int n = 0;
-
-       mutex_lock(&yaffs_context_lock);
-
-       /* Locate and print the Nth entry.  Order N-squared but N is small. */
-       list_for_each(item, &yaffs_context_list) {
-               struct yaffs_linux_context *dc =
-                   list_entry(item, struct yaffs_linux_context, context_list);
-               struct yaffs_dev *dev = dc->dev;
-
-               int erased_chunks;
-
-               erased_chunks =
-                   dev->n_erased_blocks * dev->param.chunks_per_block;
-
-               buf += sprintf(buf, "%d, %d, %d, %u, %u, %u, %u\n",
-                              n, dev->n_free_chunks, erased_chunks,
-                              dev->bg_gcs, dev->oldest_dirty_gc_count,
-                              dev->n_obj, dev->n_tnodes);
-       }
-       mutex_unlock(&yaffs_context_lock);
-
-       return buf - page < count ? buf - page : count;
-}
 
 /**
  * Set the verbosity of the warnings and error messages.
@@ -2748,35 +2686,36 @@ static struct {
        char *mask_name;
        unsigned mask_bitfield;
 } mask_flags[] = {
-       {
-       "allocate", YAFFS_TRACE_ALLOCATE}, {
-       "always", YAFFS_TRACE_ALWAYS}, {
-       "background", YAFFS_TRACE_BACKGROUND}, {
-       "bad_blocks", YAFFS_TRACE_BAD_BLOCKS}, {
-       "buffers", YAFFS_TRACE_BUFFERS}, {
-       "bug", YAFFS_TRACE_BUG}, {
-       "checkpt", YAFFS_TRACE_CHECKPOINT}, {
-       "deletion", YAFFS_TRACE_DELETION}, {
-       "erase", YAFFS_TRACE_ERASE}, {
-       "error", YAFFS_TRACE_ERROR}, {
-       "gc_detail", YAFFS_TRACE_GC_DETAIL}, {
-       "gc", YAFFS_TRACE_GC}, {
-       "lock", YAFFS_TRACE_LOCK}, {
-       "mtd", YAFFS_TRACE_MTD}, {
-       "nandaccess", YAFFS_TRACE_NANDACCESS}, {
-       "os", YAFFS_TRACE_OS}, {
-       "scan_debug", YAFFS_TRACE_SCAN_DEBUG}, {
-       "scan", YAFFS_TRACE_SCAN}, {
-       "tracing", YAFFS_TRACE_TRACING}, {
-       "sync", YAFFS_TRACE_SYNC}, {
-       "write", YAFFS_TRACE_WRITE}, {
-       "verify", YAFFS_TRACE_VERIFY}, {
-       "verify_nand", YAFFS_TRACE_VERIFY_NAND}, {
-       "verify_full", YAFFS_TRACE_VERIFY_FULL}, {
-       "verify_all", YAFFS_TRACE_VERIFY_ALL}, {
-       "all", 0xffffffff}, {
-       "none", 0}, {
-NULL, 0},};
+       {"allocate", YAFFS_TRACE_ALLOCATE}, 
+       {"always", YAFFS_TRACE_ALWAYS},
+       {"background", YAFFS_TRACE_BACKGROUND},
+       {"bad_blocks", YAFFS_TRACE_BAD_BLOCKS},
+       {"buffers", YAFFS_TRACE_BUFFERS},
+       {"bug", YAFFS_TRACE_BUG},
+       {"checkpt", YAFFS_TRACE_CHECKPOINT},
+       {"deletion", YAFFS_TRACE_DELETION},
+       {"erase", YAFFS_TRACE_ERASE},
+       {"error", YAFFS_TRACE_ERROR},
+       {"gc_detail", YAFFS_TRACE_GC_DETAIL},
+       {"gc", YAFFS_TRACE_GC},
+       {"lock", YAFFS_TRACE_LOCK},
+       {"mtd", YAFFS_TRACE_MTD},
+       {"nandaccess", YAFFS_TRACE_NANDACCESS},
+       {"os", YAFFS_TRACE_OS},
+       {"scan_debug", YAFFS_TRACE_SCAN_DEBUG},
+       {"scan", YAFFS_TRACE_SCAN},
+       {"mount", YAFFS_TRACE_MOUNT},
+       {"tracing", YAFFS_TRACE_TRACING},
+       {"sync", YAFFS_TRACE_SYNC},
+       {"write", YAFFS_TRACE_WRITE},
+       {"verify", YAFFS_TRACE_VERIFY},
+       {"verify_nand", YAFFS_TRACE_VERIFY_NAND},
+       {"verify_full", YAFFS_TRACE_VERIFY_FULL},
+       {"verify_all", YAFFS_TRACE_VERIFY_ALL},
+       {"all", 0xffffffff},
+       {"none", 0},
+       {NULL, 0},
+};
 
 #define MAX_MASK_NAME_LENGTH 40
 static int yaffs_proc_write_trace_options(struct file *file, const char *buf,
@@ -2921,16 +2860,6 @@ static int __init init_yaffs_fs(void)
                return -ENOMEM;
         }
 
-       debug_proc_entry = create_proc_entry("yaffs_stats",
-                                            S_IRUGO | S_IFREG, YPROC_ROOT);
-
-       if (debug_proc_entry) {
-               debug_proc_entry->write_proc = NULL;
-               debug_proc_entry->read_proc = yaffs_stats_proc_read;
-               debug_proc_entry->data = NULL;
-       } else {
-               return -ENOMEM;
-        }
 
        /* Now add the file system entries */
 
@@ -2968,7 +2897,6 @@ static void __exit exit_yaffs_fs(void)
          (TSTR("yaffs built " __DATE__ " " __TIME__ " removing. \n")));
 
        remove_proc_entry("yaffs", YPROC_ROOT);
-       remove_proc_entry("yaffs_stats", YPROC_ROOT);
 
        fsinst = fs_to_install;