|
@@ -2802,6 +2802,8 @@ static ssize_t dfs_file_read(struct file *file, char __user *u, size_t count,
|
|
|
val = d->chk_fs;
|
|
|
else if (dent == d->dfs_tst_rcvry)
|
|
|
val = d->tst_rcvry;
|
|
|
+ else if (dent == d->dfs_ro_error)
|
|
|
+ val = c->ro_error;
|
|
|
else
|
|
|
return -EINVAL;
|
|
|
|
|
@@ -2885,6 +2887,8 @@ static ssize_t dfs_file_write(struct file *file, const char __user *u,
|
|
|
d->chk_fs = val;
|
|
|
else if (dent == d->dfs_tst_rcvry)
|
|
|
d->tst_rcvry = val;
|
|
|
+ else if (dent == d->dfs_ro_error)
|
|
|
+ c->ro_error = !!val;
|
|
|
else
|
|
|
return -EINVAL;
|
|
|
|
|
@@ -2996,6 +3000,13 @@ int dbg_debugfs_init_fs(struct ubifs_info *c)
|
|
|
goto out_remove;
|
|
|
d->dfs_tst_rcvry = dent;
|
|
|
|
|
|
+ fname = "ro_error";
|
|
|
+ dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, d->dfs_dir, c,
|
|
|
+ &dfs_fops);
|
|
|
+ if (IS_ERR_OR_NULL(dent))
|
|
|
+ goto out_remove;
|
|
|
+ d->dfs_ro_error = dent;
|
|
|
+
|
|
|
return 0;
|
|
|
|
|
|
out_remove:
|