X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=libatalk%2Fadouble%2Fad_conv.c;fp=libatalk%2Fadouble%2Fad_conv.c;h=eaac8db97032eab7aead8b644de35657854ea9f3;hb=e7ed33e58dfdf9985d425f548f1165a95014a9e4;hp=10284dbbbb551faecc8e45da6f0a0885b7c53e24;hpb=86842c08a4faa8fcd7b4f6639f39a3245f0b7d81;p=netatalk.git diff --git a/libatalk/adouble/ad_conv.c b/libatalk/adouble/ad_conv.c index 10284dbb..eaac8db9 100644 --- a/libatalk/adouble/ad_conv.c +++ b/libatalk/adouble/ad_conv.c @@ -103,7 +103,9 @@ static int ad_conv_v22ea_hf(const char *path, const struct stat *sp, const struc copy: /* Create a adouble:ea meta EA */ LOG(log_debug, logtype_default,"ad_conv_v22ea_hf(\"%s\"): copying adouble", fullpathname(path), ret); - EC_ZERO_LOG( ad_open(&adea, path, adflags | ADFLAGS_HF | ADFLAGS_RDWR | ADFLAGS_CREATE) ); + EC_ZERO_LOGSTR( ad_open(&adea, path, adflags | ADFLAGS_HF | ADFLAGS_RDWR | ADFLAGS_CREATE), + "ad_conv_v22ea_hf(\"%s\"): error creating metadata EA: %s", + fullpathname(path), strerror(errno)); EC_ZERO_LOG( ad_copy_header(&adea, &adv2) ); ad_flush(&adea); @@ -155,6 +157,8 @@ static int ad_conv_v22ea(const char *path, const struct stat *sp, const struct v const char *adpath; int adflags = S_ISDIR(sp->st_mode) ? ADFLAGS_DIR : 0; + become_root(); + EC_ZERO( ad_conv_v22ea_hf(path, sp, vol) ); EC_ZERO( ad_conv_v22ea_rf(path, sp, vol) ); @@ -162,13 +166,14 @@ static int ad_conv_v22ea(const char *path, const struct stat *sp, const struct v LOG(log_debug, logtype_default,"ad_conv_v22ea_hf(\"%s\"): deleting adouble:v2 file: \"%s\"", path, fullpathname(adpath)); - become_root(); - EC_ZERO_LOG( unlink(adpath) ); - unbecome_root(); + unlink(adpath); EC_CLEANUP: if (errno == ENOENT) EC_STATUS(0); + + unbecome_root(); + EC_EXIT; }