From 9164b862ff73810e045c7499a15f87ca1b578cfb Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Mon, 21 May 2001 01:41:37 +0000 Subject: [PATCH] ChangeLog, fsck.c: fsck.c (device_already_active): Fix bug in device_already_active which could cause infinite loops if we don't know the base_device of the filesystem. --- misc/ChangeLog | 4 ++++ misc/fsck.c | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/misc/ChangeLog b/misc/ChangeLog index c66d2fb..47d04e4 100644 --- a/misc/ChangeLog +++ b/misc/ChangeLog @@ -1,5 +1,9 @@ 2001-05-20 Theodore Tso + * fsck.c (device_already_active): Fix bug in + device_already_active which could cause infinite loops if + we don't know the base_device of the filesystem. + * fsck.c: Make sure all exit status codes returned by fsck are consistent with the error codes documented in the fsck man page. diff --git a/misc/fsck.c b/misc/fsck.c index e06d719..4a09c9c 100644 --- a/misc/fsck.c +++ b/misc/fsck.c @@ -698,8 +698,12 @@ static int device_already_active(char *device) #endif base = base_device(device); - if (!base) - return 1; + /* + * If we don't know the base device, assume that the device is + * already active if there are any fsck instances running. + */ + if (!base) + return (instance_list != 0); for (inst = instance_list; inst; inst = inst->next) { if (!strcmp(base, inst->base_device)) { free(base); -- 1.8.3.1