]> arthur.barton.de Git - netatalk.git/commitdiff
Forgot test for noadbouble vol in ad_metadata in previous commit
authorfranklahm <franklahm>
Wed, 6 Jan 2010 12:59:10 +0000 (12:59 +0000)
committerfranklahm <franklahm>
Wed, 6 Jan 2010 12:59:10 +0000 (12:59 +0000)
libatalk/adouble/ad_open.c

index 5531091a7db6094dbcaa30b31945dc26edf0f587..76f2442c72af72cb74aaf5f94a4960521526a900 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: ad_open.c,v 1.66 2010-01-06 11:08:53 franklahm Exp $
+ * $Id: ad_open.c,v 1.67 2010-01-06 12:59:10 franklahm Exp $
  *
  * Copyright (c) 1999 Adrian Sun (asun@u.washington.edu)
  * Copyright (c) 1990,1991 Regents of The University of Michigan.
@@ -1520,10 +1520,14 @@ sfm:
 int ad_metadata(const char *name, int flags, struct adouble *adp)
 {
     uid_t uid;
-    int   ret, err, dir, create;
+    int   ret, err, dir;
+    int   create = 0;
 
     dir = flags & ADFLAGS_DIR;
-    create = (flags & ADFLAGS_CREATE) ? O_CREAT : 0;
+
+    /* Check if we shall call ad_open with O_CREAT */
+    if ( ! (adp->ad_options & ADVOL_NOADOUBLE) && (flags & ADFLAGS_CREATE) )
+        create = O_CREAT;
 
     if ((ret = ad_open(name, ADFLAGS_HF | dir, O_RDWR | create, 0666, adp)) < 0 && errno == EACCES) {
         uid = geteuid();