[Devel] [PATCH vz10 05/24] fence-watchdog: return count from watchdog_log_path store

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Thu Jul 23 15:24:54 MSK 2026


Reviewed-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>

On 7/6/26 12:59, Konstantin Khorenko wrote:
> fence_wdog_log_path_store() returned 0 on success instead of the number
> of bytes consumed. A sysfs ->store() handler must return @count (or a
> negative error); returning 0 tells the VFS that no bytes of the write
> were consumed, so a write(2) of the new path makes no progress. A
> libc/shell that loops until all bytes are written (e.g. echo > file)
> then spins forever, and a single write() reports 0 rather than the
> requested length. The path value itself is updated (sscanf ran), which
> masks the bug on a casual read-back, but the write side is broken.
> 
> The sibling watchdog_timer and watchdog_action store handlers already
> return count; do the same here.
> 
> Fixes: 9cf3dd3bae58 ("fence-watchdog: Add fence-watchdog driver")
> Feature: kernel: fense watchdog driver
> https://virtuozzo.atlassian.net/browse/VSTOR-137234
> Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
> ---
>  kernel/fence-watchdog.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/fence-watchdog.c b/kernel/fence-watchdog.c
> index bcbd439d4981..c7a28fad1f26 100644
> --- a/kernel/fence-watchdog.c
> +++ b/kernel/fence-watchdog.c
> @@ -279,7 +279,7 @@ static ssize_t fence_wdog_log_path_store(struct kobject *kobj,
>  
>  	if (sscanf(buf, format, fence_wdog_log_path) != 1)
>  		return -EINVAL;
> -	return 0;
> +	return count;
>  }
>  
>  static struct kobj_attribute fence_wdog_timer_attr =

-- 
Best regards, Pavel Tikhomirov
Senior Software Developer, Virtuozzo.



More information about the Devel mailing list