From d1cce71d997f0bfce8f476e23ec10372625ea7a0 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Fri, 18 Mar 2005 00:22:06 +0000 Subject: [PATCH] Unify_isIUnlinkable(): changed return-type git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1917 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/lib_internal/unify-isiunlinkable.c | 9 +++++---- util-vserver/lib_internal/unify.h | 5 ++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/util-vserver/lib_internal/unify-isiunlinkable.c b/util-vserver/lib_internal/unify-isiunlinkable.c index eb76e15..2ad550a 100644 --- a/util-vserver/lib_internal/unify-isiunlinkable.c +++ b/util-vserver/lib_internal/unify-isiunlinkable.c @@ -24,7 +24,7 @@ #include "vserver.h" -bool +UnifyStatus Unify_isIUnlinkable(char const *filename) { uint_least32_t const V = VC_IATTR_IUNLINK|VC_IATTR_IMMUTABLE; @@ -32,7 +32,8 @@ Unify_isIUnlinkable(char const *filename) uint_least32_t flags; uint_least32_t mask = V; - return (vc_get_iattr(filename, 0, &flags, &mask)!=-1 && - (mask & V)==V && - (flags & V)!=V); + if (vc_get_iattr(filename, 0, &flags, &mask)==-1 || (mask & V) != V) + return unifyUNSUPPORTED; + + return (flags & V)==V ? unifyBUSY : unifyUINLINKABLE; } diff --git a/util-vserver/lib_internal/unify.h b/util-vserver/lib_internal/unify.h index 30d8e3b..346a058 100644 --- a/util-vserver/lib_internal/unify.h +++ b/util-vserver/lib_internal/unify.h @@ -37,7 +37,10 @@ Unify_deUnify(char const *dst) NONNULL((1)); bool Unify_setTime(char const *dst, struct stat const *stat) NONNULL((1,2)); -bool + +typedef enum { unifyUNSUPPORTED, unifyUINLINKABLE, unifyBUSY } UnifyStatus; + +UnifyStatus Unify_isIUnlinkable(char const *filename) NONNULL((1)); #define Unify_isUnified(LHS, RHS) \ -- 1.8.1.5