fsck: add BOOKMARKFS_FSCK_HANDLER_READONLY flag

instead of reusing the BOOKMARKFS_BACKEND_READONLY flag
This commit is contained in:
CismonX 2025-01-24 08:34:40 +08:00
parent 3cb99fe85b
commit b9e02d2d3d
No known key found for this signature in database
GPG key ID: 3094873E29A482FB
4 changed files with 13 additions and 14 deletions

View file

@ -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;

View file

@ -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 )

View file

@ -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;
}

View file

@ -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;
}