X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_vfs_multi.c;h=2a3695a9cb24cad232c71104fdba649bd04b3f04;hp=0bb06f41dd01d2ebdf80c9f0fc57eb57476007c3;hb=ed8188fb7659cfb65b5adbe154d143190ade0324;hpb=1c8604a29f8ca073e1f5129c58e201a4b42bc192 diff --git a/yaffs_vfs_multi.c b/yaffs_vfs_multi.c index 0bb06f4..2a3695a 100644 --- a/yaffs_vfs_multi.c +++ b/yaffs_vfs_multi.c @@ -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,