summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/generic-2.6/files/fs/yaffs2/yaffs_fs.c37
-rw-r--r--target/linux/generic-2.6/files/fs/yaffs2/yportenv.h1
2 files changed, 30 insertions, 8 deletions
diff --git a/target/linux/generic-2.6/files/fs/yaffs2/yaffs_fs.c b/target/linux/generic-2.6/files/fs/yaffs2/yaffs_fs.c
index 3a77a03aa..e572301f5 100644
--- a/target/linux/generic-2.6/files/fs/yaffs2/yaffs_fs.c
+++ b/target/linux/generic-2.6/files/fs/yaffs2/yaffs_fs.c
@@ -32,7 +32,7 @@
*/
const char *yaffs_fs_c_version =
- "$Id: yaffs_fs.c,v 1.60 2007-05-15 20:07:40 charles Exp $";
+ "$Id: yaffs_fs.c,v 1.63 2007-09-19 20:35:40 imcd Exp $";
extern const char *yaffs_guts_c_version;
#include <linux/version.h>
@@ -213,24 +213,45 @@ static struct address_space_operations yaffs_file_address_operations = {
.commit_write = yaffs_commit_write,
};
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,22))
+static struct file_operations yaffs_file_operations = {
+ .read = do_sync_read,
+ .write = do_sync_write,
+ .aio_read = generic_file_aio_read,
+ .aio_write = generic_file_aio_write,
+ .mmap = generic_file_mmap,
+ .flush = yaffs_file_flush,
+ .fsync = yaffs_sync_object,
+ .splice_read = generic_file_splice_read,
+ .splice_write = generic_file_splice_write,
+};
+
+#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+
static struct file_operations yaffs_file_operations = {
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
.read = do_sync_read,
.write = do_sync_write,
.aio_read = generic_file_aio_read,
.aio_write = generic_file_aio_write,
+ .mmap = generic_file_mmap,
+ .flush = yaffs_file_flush,
+ .fsync = yaffs_sync_object,
+ .sendfile = generic_file_sendfile,
+};
+
#else
+
+static struct file_operations yaffs_file_operations = {
.read = generic_file_read,
.write = generic_file_write,
-#endif
.mmap = generic_file_mmap,
.flush = yaffs_file_flush,
.fsync = yaffs_sync_object,
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
.sendfile = generic_file_sendfile,
#endif
-
};
+#endif
static struct inode_operations yaffs_file_inode_operations = {
.setattr = yaffs_setattr,
@@ -1430,6 +1451,7 @@ static void yaffs_read_inode(struct inode *inode)
static LIST_HEAD(yaffs_dev_list);
+#if 0 // not used
static int yaffs_remount_fs(struct super_block *sb, int *flags, char *data)
{
yaffs_Device *dev = yaffs_SuperToDevice(sb);
@@ -1458,6 +1480,7 @@ static int yaffs_remount_fs(struct super_block *sb, int *flags, char *data)
return 0;
}
+#endif
static void yaffs_put_super(struct super_block *sb)
{
@@ -2095,7 +2118,7 @@ static int yaffs_proc_write(struct file *file, const char *buf,
unsigned rg = 0, mask_bitfield;
char *end;
char *mask_name;
- char *x;
+ const char *x;
char substring[MAX_MASK_NAME_LENGTH+1];
int i;
int done = 0;
@@ -2128,6 +2151,7 @@ static int yaffs_proc_write(struct file *file, const char *buf,
if (end > buf + pos) {
mask_name = "numeral";
len = end - (buf + pos);
+ pos += len;
done = 0;
} else {
for(x = buf + pos, i = 0;
@@ -2137,8 +2161,6 @@ static int yaffs_proc_write(struct file *file, const char *buf,
substring[i] = '\0';
for (i = 0; mask_flags[i].mask_name != NULL; i++) {
- //len = strlen(mask_flags[i].mask_name);
- //if (strncmp(buf + pos, mask_flags[i].mask_name, len) == 0) {
if(strcmp(substring,mask_flags[i].mask_name) == 0){
mask_name = mask_flags[i].mask_name;
mask_bitfield = mask_flags[i].mask_bitfield;
@@ -2149,7 +2171,6 @@ static int yaffs_proc_write(struct file *file, const char *buf,
}
if (mask_name != NULL) {
- // pos += len;
done = 0;
switch(add) {
case '-':
diff --git a/target/linux/generic-2.6/files/fs/yaffs2/yportenv.h b/target/linux/generic-2.6/files/fs/yaffs2/yportenv.h
index e5e3dbe8e..8b80c6d68 100644
--- a/target/linux/generic-2.6/files/fs/yaffs2/yportenv.h
+++ b/target/linux/generic-2.6/files/fs/yaffs2/yportenv.h
@@ -32,6 +32,7 @@
#endif
#include <linux/kernel.h>
#include <linux/mm.h>
+#include <linux/sched.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>