projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Adding more time tests
[yaffs2.git]
/
yaffs_vfs_multi.c
diff --git
a/yaffs_vfs_multi.c
b/yaffs_vfs_multi.c
index e4edb2cb357e328f8c906c7b01cf02ba9dd13a5a..a08e0716124291602ea99316f51c78bea2a19adc 100644
(file)
--- a/
yaffs_vfs_multi.c
+++ b/
yaffs_vfs_multi.c
@@
-1832,10
+1832,8
@@
static int yaffs_iterate(struct file *f, struct dir_context *dc)
goto out;
}
goto out;
}
- if (!dir_emit_dots(f, dc)) {
- yaffs_gross_unlock(dev);
- return 0;
- }
+ if (!dir_emit_dots(f, dc))
+ goto out;
curoffs = 1;
curoffs = 1;
@@
-2049,11
+2047,11
@@
static void yaffs_fill_inode_from_obj(struct inode *inode,
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 5, 0))
inode->i_rdev = old_decode_dev(obj->yst_rdev);
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 5, 0))
inode->i_rdev = old_decode_dev(obj->yst_rdev);
- inode->i_atime.tv_sec = (
time_t
) (obj->yst_atime);
+ inode->i_atime.tv_sec = (
YTIME_T
) (obj->yst_atime);
inode->i_atime.tv_nsec = 0;
inode->i_atime.tv_nsec = 0;
- inode->i_mtime.tv_sec = (
time_t
) obj->yst_mtime;
+ inode->i_mtime.tv_sec = (
YTIME_T
) obj->yst_mtime;
inode->i_mtime.tv_nsec = 0;
inode->i_mtime.tv_nsec = 0;
- inode->i_ctime.tv_sec = (
time_t
) obj->yst_ctime;
+ inode->i_ctime.tv_sec = (
YTIME_T
) obj->yst_ctime;
inode->i_ctime.tv_nsec = 0;
#else
inode->i_rdev = obj->yst_rdev;
inode->i_ctime.tv_nsec = 0;
#else
inode->i_rdev = obj->yst_rdev;
@@
-2718,6
+2716,7
@@
static int yaffs_sync_fs(struct super_block *sb)
static int yaffs_remount_fs(struct super_block *sb, int *flags, char *data)
{
int read_only = 0;
static int yaffs_remount_fs(struct super_block *sb, int *flags, char *data)
{
int read_only = 0;
+ int was_read_only = 0;
struct mtd_info *mtd;
struct yaffs_dev *dev = 0;
struct mtd_info *mtd;
struct yaffs_dev *dev = 0;
@@
-2747,8
+2746,18
@@
static int yaffs_remount_fs(struct super_block *sb, int *flags, char *data)
}
dev = sb->s_fs_info;
}
dev = sb->s_fs_info;
+ was_read_only = dev->read_only;
dev->read_only = read_only;
dev->read_only = read_only;
+ if (was_read_only && !read_only) {
+ yaffs_gross_lock(dev);
+ yaffs_guts_cleanup(dev);
+ yaffs_gross_unlock(dev);
+ yaffs_bg_start(dev);
+ } else if (!was_read_only && read_only) {
+ yaffs_bg_stop(dev);
+ }
+
return 0;
}
return 0;
}