mirror of
https://git.sr.ht/~cismonx/bookmarkfs
synced 2025-06-07 19:58:50 +00:00
fsck: add BOOKMARKFS_FSCK_HANDLER_READONLY flag
instead of reusing the BOOKMARKFS_BACKEND_READONLY flag
This commit is contained in:
parent
3cb99fe85b
commit
b9e02d2d3d
4 changed files with 13 additions and 14 deletions
|
@ -344,7 +344,7 @@ init_handler (
|
|||
flags |= BOOKMARKFS_FSCK_HANDLER_INTERACTIVE;
|
||||
}
|
||||
if (info->flags.readonly) {
|
||||
flags |= BOOKMARKFS_BACKEND_READONLY;
|
||||
flags |= BOOKMARKFS_FSCK_HANDLER_READONLY;
|
||||
}
|
||||
if (0 != handler->create(info->handler_opts, flags, &ctx->handler_ctx)) {
|
||||
return -1;
|
||||
|
|
|
@ -34,7 +34,8 @@
|
|||
#endif
|
||||
|
||||
// init() flags
|
||||
#define BOOKMARKFS_FSCK_HANDLER_INTERACTIVE ( 1u << 16 )
|
||||
#define BOOKMARKFS_FSCK_HANDLER_INTERACTIVE ( 1u << 0 )
|
||||
#define BOOKMARKFS_FSCK_HANDLER_READONLY ( 1u << 1 )
|
||||
|
||||
#define BOOKMARKFS_FSCK_HANDLER_INFO_HELP ( 1u << 0 )
|
||||
#define BOOKMARKFS_FSCK_HANDLER_INFO_VERSION ( 1u << 1 )
|
||||
|
|
|
@ -28,16 +28,15 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "backend.h"
|
||||
#include "backend_util.h"
|
||||
#include "fsck_handler.h"
|
||||
#include "fsck_util.h"
|
||||
#include "ioctl.h"
|
||||
#include "xstd.h"
|
||||
|
||||
#define FSCK_HANDLER_EXPECT_INPUT ( 1u << 24 )
|
||||
#define FSCK_HANDLER_HAS_ENTRY ( 1u << 25 )
|
||||
#define FSCK_HANDLER_INHIBIT_NEXT ( 1u << 26 )
|
||||
#define FSCK_HANDLER_EXPECT_INPUT ( 1u << 16 )
|
||||
#define FSCK_HANDLER_HAS_ENTRY ( 1u << 17 )
|
||||
#define FSCK_HANDLER_INHIBIT_NEXT ( 1u << 18 )
|
||||
|
||||
struct handler_ctx {
|
||||
uint64_t parent_id;
|
||||
|
@ -133,7 +132,7 @@ handle_input (
|
|||
strncpy(ctx->data_buf.name, next, sizeof(ctx->data_buf.name));
|
||||
// fallthrough
|
||||
case 'a':
|
||||
if (ctx->flags & BOOKMARKFS_BACKEND_READONLY) {
|
||||
if (ctx->flags & BOOKMARKFS_FSCK_HANDLER_READONLY) {
|
||||
log_puts("cannot apply, fsck is running in readonly mode");
|
||||
control = expect_input(ctx, &data->str);
|
||||
break;
|
||||
|
@ -278,7 +277,7 @@ handle_entry (
|
|||
}
|
||||
|
||||
int control = BOOKMARKFS_FSCK_NEXT;
|
||||
if (!(ctx->flags & BOOKMARKFS_BACKEND_READONLY)) {
|
||||
if (!(ctx->flags & BOOKMARKFS_FSCK_HANDLER_READONLY)) {
|
||||
fix_entry(ctx, why, entry_data);
|
||||
control = BOOKMARKFS_FSCK_APPLY;
|
||||
}
|
||||
|
|
|
@ -34,16 +34,15 @@
|
|||
|
||||
#include <tcl.h>
|
||||
|
||||
#include "backend.h"
|
||||
#include "backend_util.h"
|
||||
#include "fsck_handler.h"
|
||||
#include "macros.h"
|
||||
#include "version.h"
|
||||
#include "xstd.h"
|
||||
|
||||
#define FSCK_HANDLER_UNSAFE ( 1u << 24 )
|
||||
#define FSCK_HANDLER_EXPECT_INPUT ( 1u << 25 )
|
||||
#define FSCK_HANDLER_INITIALIZED ( 1u << 26 )
|
||||
#define FSCK_HANDLER_UNSAFE ( 1u << 16 )
|
||||
#define FSCK_HANDLER_EXPECT_INPUT ( 1u << 17 )
|
||||
#define FSCK_HANDLER_INITIALIZED ( 1u << 18 )
|
||||
|
||||
struct handler_ctx {
|
||||
Tcl_Interp *interp;
|
||||
|
@ -147,7 +146,7 @@ init_interp (
|
|||
DO_SET_VAR(interp, "isInteractive",
|
||||
!!(flags & BOOKMARKFS_FSCK_HANDLER_INTERACTIVE));
|
||||
DO_SET_VAR(interp, "isReadonly",
|
||||
!!(flags & BOOKMARKFS_BACKEND_READONLY));
|
||||
!!(flags & BOOKMARKFS_FSCK_HANDLER_READONLY));
|
||||
DO_SET_VAR(interp, "handler::next", BOOKMARKFS_FSCK_NEXT);
|
||||
DO_SET_VAR(interp, "handler::apply", BOOKMARKFS_FSCK_APPLY);
|
||||
DO_SET_VAR(interp, "handler::userInput", BOOKMARKFS_FSCK_USER_INPUT);
|
||||
|
@ -364,7 +363,7 @@ fsck_handler_run (
|
|||
break;
|
||||
|
||||
case BOOKMARKFS_FSCK_APPLY:
|
||||
if (ctx->flags & BOOKMARKFS_BACKEND_READONLY) {
|
||||
if (ctx->flags & BOOKMARKFS_FSCK_HANDLER_READONLY) {
|
||||
log_puts("cannot apply, fsck is running in readonly mode");
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue