yaffs: Replace yaffs_dir_llseek with Linux generic llseek
[yaffs2.git] / yaffs_vfs_multi.c
index 0bb06f41dd01d2ebdf80c9f0fc57eb57476007c3..2a3695a9cb24cad232c71104fdba649bd04b3f04 100644 (file)
@@ -341,8 +341,6 @@ static int 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 = {
@@ -456,7 +454,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 = {
@@ -1529,31 +1527,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;
@@ -3323,35 +3296,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,