]> arthur.barton.de Git - netatalk.git/commitdiff
Datafork is implicitly openend in metadata open
authorFrank Lahm <franklahm@googlemail.com>
Mon, 23 Jan 2012 10:15:48 +0000 (11:15 +0100)
committerFrank Lahm <franklahm@googlemail.com>
Mon, 23 Jan 2012 10:15:48 +0000 (11:15 +0100)
libatalk/adouble/ad_flush.c
libatalk/adouble/ad_open.c

index 87b8158688817bed09c9141d2df5e06b449711df..a451c1c6839ab85345604b12483eb03a03ad5e5f 100644 (file)
@@ -358,10 +358,6 @@ int ad_close(struct adouble *ad, int adflags)
         ad_meta_fileno(ad), ad->ad_mdp->adf_refcount,
         ad_reso_fileno(ad), ad->ad_rfp->adf_refcount);
 
-    /* cf ad_open(): we opened the datafork too for sharemode locks */
-    if ((ad->ad_vers == AD_VERSION_EA) && (ad->ad_adflags & ADFLAGS_SETSHRMD))
-        adflags |= ADFLAGS_DF;
-
     if ((adflags & ADFLAGS_DF)
         && (ad_data_fileno(ad) >= 0 || ad_data_fileno(ad) == -2) /* -2 means symlink */
         && --ad->ad_data_fork.adf_refcount == 0) {
@@ -391,7 +387,7 @@ int ad_close(struct adouble *ad, int adflags)
 
     LOG(log_debug, logtype_default,
         "ad_close(%s): END: %d [dfd: %d (ref: %d), mfd: %d (ref: %d), rfd: %d (ref: %d)]",
-        err, adflags2logstr(adflags),
+        adflags2logstr(adflags), err,
         ad_data_fileno(ad), ad->ad_data_fork.adf_refcount,
         ad_meta_fileno(ad), ad->ad_mdp->adf_refcount,
         ad_reso_fileno(ad), ad->ad_rfp->adf_refcount);
index ace629e1ab7cea84ef6096404c04303107108e9a..bce54eab42fd5f1db18c35c4b7d0c3afa8b0ea01 100644 (file)
@@ -930,7 +930,7 @@ static int ad_open_hf_ea(const char *path, int adflags, int mode, struct adouble
 
     if (ad_meta_fileno(ad) != -1) {
         /* the file is already open, but we want write access: */
-        if ((adflags & ADFLAGS_RDWR) &&
+        if ((oflags & O_RDWR) &&
             /* and it was already denied: */
             (ad->ad_mdp->adf_flags & O_RDONLY)) {
             LOG(log_error, logtype_default, "ad_open_hf_ea(%s): rw request for ro file: %s",
@@ -1459,10 +1459,6 @@ int ad_open(struct adouble *ad, const char *path, int adflags, ...)
         if (adflags & ADFLAGS_NORF)
             adflags |= ADFLAGS_NOHF;
     }
-    
-    if ((ad->ad_vers == AD_VERSION_EA) && (adflags & ADFLAGS_SETSHRMD))
-        /* adouble:ea sets sharemode locks on the datafork */
-        adflags |= ADFLAGS_DF;
 
     if (ad->ad_inited != AD_INITED) {
         ad->ad_adflags = adflags;