goto out;
}
- if (!dir_emit_dots(f, dc)) {
- yaffs_gross_unlock(dev);
- return 0;
- }
+ if (!dir_emit_dots(f, dc))
+ goto out;
curoffs = 1;
#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_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_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;
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;
}
dev = sb->s_fs_info;
+ was_read_only = dev->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;
}
.open = yaffs_proc_open,
.read = seq_read,
.write = yaffs_proc_write,
+ .release = single_release,
};
static int yaffs_procfs_init(void)