From dd3702eb7f9da67875f287c42d878db1242fd981 Mon Sep 17 00:00:00 2001 From: didg Date: Tue, 24 Nov 2009 12:18:19 +0000 Subject: [PATCH] add a flag parameter to cnid open functions --- include/atalk/cnid.h | 11 ++++++++--- libatalk/cnid/cdb/cnid_cdb.h | 2 +- libatalk/cnid/cdb/cnid_cdb_open.c | 5 ++--- libatalk/cnid/cnid.c | 4 ++-- libatalk/cnid/db3/cnid_db3.h | 2 +- libatalk/cnid/db3/cnid_db3_open.c | 4 ++-- libatalk/cnid/dbd/cnid_dbd.c | 4 ++-- libatalk/cnid/dbd/cnid_dbd.h | 4 ++-- libatalk/cnid/hash/cnid_hash.h | 2 +- libatalk/cnid/hash/cnid_hash_open.c | 4 ++-- libatalk/cnid/last/cnid_last.c | 4 ++-- libatalk/cnid/last/cnid_last.h | 2 +- libatalk/cnid/mtab/cnid_mtab.c | 4 ++-- libatalk/cnid/tdb/cnid_tdb.h | 2 +- libatalk/cnid/tdb/cnid_tdb_open.c | 4 ++-- 15 files changed, 31 insertions(+), 27 deletions(-) diff --git a/include/atalk/cnid.h b/include/atalk/cnid.h index e64a677a..ee21c346 100644 --- a/include/atalk/cnid.h +++ b/include/atalk/cnid.h @@ -1,5 +1,5 @@ /* - * $Id: cnid.h,v 1.12 2005-09-07 15:23:21 didg Exp $ + * $Id: cnid.h,v 1.13 2009-11-24 12:18:19 didg Exp $ * * Copyright (c) 2003 the Netatalk Team * Copyright (c) 2003 Rafal Lewczuk @@ -33,6 +33,8 @@ #define CNID_FLAG_BLOCK 0x08 /* block signals in update. */ #define CNID_FLAG_NODEV 0x10 /* don't use device number only inode */ #define CNID_FLAG_LAZY_INIT 0x20 /* */ +#define CNID_FLAG_MEMORY 0x40 /* this is a memory only db */ +#define CNID_FLAG_INODE 0x80 /* in cnid_add the inode is authoritative */ #define CNID_INVALID 0 @@ -74,7 +76,7 @@ typedef struct _cnid_db cnid_db; struct _cnid_module { char *name; struct list_head db_list; /* CNID modules are also stored on a bidirectional list. */ - struct _cnid_db *(*cnid_open)(const char *dir, mode_t mask); + struct _cnid_db *(*cnid_open)(const char *dir, mode_t mask, u_int32_t flags); u_int32_t flags; /* Flags describing some CNID backend aspects. */ }; @@ -117,7 +119,10 @@ void cnid_close(struct _cnid_db *db); /* * $Log: cnid.h,v $ - * Revision 1.12 2005-09-07 15:23:21 didg + * Revision 1.13 2009-11-24 12:18:19 didg + * add a flag parameter to cnid open functions + * + * Revision 1.12 2005/09/07 15:23:21 didg * * lazy init dbd database, help with pre tiger OS and a lot of volumes. * diff --git a/libatalk/cnid/cdb/cnid_cdb.h b/libatalk/cnid/cdb/cnid_cdb.h index 311fba0d..25c2d32b 100644 --- a/libatalk/cnid/cdb/cnid_cdb.h +++ b/libatalk/cnid/cdb/cnid_cdb.h @@ -16,7 +16,7 @@ /* cnid_open.c */ extern struct _cnid_module cnid_cdb_module; -extern struct _cnid_db *cnid_cdb_open (const char *, mode_t); +extern struct _cnid_db *cnid_cdb_open (const char *, mode_t, u_int32_t flags); /* cnid_close.c */ extern void cnid_cdb_close (struct _cnid_db *); diff --git a/libatalk/cnid/cdb/cnid_cdb_open.c b/libatalk/cnid/cdb/cnid_cdb_open.c index 0a00ec59..90e16d8e 100644 --- a/libatalk/cnid/cdb/cnid_cdb_open.c +++ b/libatalk/cnid/cdb/cnid_cdb_open.c @@ -1,6 +1,5 @@ - /* - * $Id: cnid_cdb_open.c,v 1.3 2009-10-13 22:55:37 didg Exp $ + * $Id: cnid_cdb_open.c,v 1.4 2009-11-24 12:18:19 didg Exp $ * * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu) * All Rights Reserved. See COPYRIGHT. @@ -202,7 +201,7 @@ static int upgrade_required(char *dbdir) } /* --------------- */ -struct _cnid_db *cnid_cdb_open(const char *dir, mode_t mask) +struct _cnid_db *cnid_cdb_open(const char *dir, mode_t mask, u_int32_t flags _U_) { struct stat st; char path[MAXPATHLEN + 1]; diff --git a/libatalk/cnid/cnid.c b/libatalk/cnid/cnid.c index 58aa780c..5476e2c3 100644 --- a/libatalk/cnid/cnid.c +++ b/libatalk/cnid/cnid.c @@ -1,5 +1,5 @@ /* - * $Id: cnid.c,v 1.8 2009-11-24 11:40:11 didg Exp $ + * $Id: cnid.c,v 1.9 2009-11-24 12:18:19 didg Exp $ * * Copyright (c) 2003 the Netatalk Team * Copyright (c) 2003 Rafal Lewczuk @@ -128,7 +128,7 @@ struct _cnid_db *cnid_open(const char *volpath, mode_t mask, char *type, int fla } } - db = mod->cnid_open(volpath, mask); + db = mod->cnid_open(volpath, mask, flags); if ((mod->flags & CNID_FLAG_SETUID)) { seteuid(0); diff --git a/libatalk/cnid/db3/cnid_db3.h b/libatalk/cnid/db3/cnid_db3.h index 2b0a0516..59840a37 100644 --- a/libatalk/cnid/db3/cnid_db3.h +++ b/libatalk/cnid/db3/cnid_db3.h @@ -53,7 +53,7 @@ static int db3_txn_commit(DB_TXN *db_txn, u_int32_t flags) cnid_open.c */ extern struct _cnid_module cnid_db3_module; -extern struct _cnid_db *cnid_db3_open (const char *, mode_t); +extern struct _cnid_db *cnid_db3_open (const char *, mode_t, u_int32_t flags); /* cnid_close.c */ extern void cnid_db3_close (struct _cnid_db *); diff --git a/libatalk/cnid/db3/cnid_db3_open.c b/libatalk/cnid/db3/cnid_db3_open.c index c6354349..92798b78 100644 --- a/libatalk/cnid/db3/cnid_db3_open.c +++ b/libatalk/cnid/db3/cnid_db3_open.c @@ -1,6 +1,6 @@ /* - * $Id: cnid_db3_open.c,v 1.4 2008-12-03 18:35:44 didg Exp $ + * $Id: cnid_db3_open.c,v 1.5 2009-11-24 12:18:19 didg Exp $ * * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu) * All Rights Reserved. See COPYRIGHT. @@ -247,7 +247,7 @@ static struct _cnid_db *cnid_db3_new(const char *volpath) return cdb; } -struct _cnid_db *cnid_db3_open(const char *dir, mode_t mask) +struct _cnid_db *cnid_db3_open(const char *dir, mode_t mask, u_int32_t flags _U_) { struct stat st; struct flock lock; diff --git a/libatalk/cnid/dbd/cnid_dbd.c b/libatalk/cnid/dbd/cnid_dbd.c index faa16fcb..2a34c8d3 100644 --- a/libatalk/cnid/dbd/cnid_dbd.c +++ b/libatalk/cnid/dbd/cnid_dbd.c @@ -1,5 +1,5 @@ /* - * $Id: cnid_dbd.c,v 1.13 2009-11-16 01:03:18 didg Exp $ + * $Id: cnid_dbd.c,v 1.14 2009-11-24 12:18:19 didg Exp $ * * Copyright (C) Joerg Lenneis 2003 * All Rights Reserved. See COPYING. @@ -442,7 +442,7 @@ static struct _cnid_db *cnid_dbd_new(const char *volpath) } /* ---------------------- */ -struct _cnid_db *cnid_dbd_open(const char *dir, mode_t mask _U_) +struct _cnid_db *cnid_dbd_open(const char *dir, mode_t mask _U_, u_int32_t flags _U_) { CNID_private *db = NULL; struct _cnid_db *cdb = NULL; diff --git a/libatalk/cnid/dbd/cnid_dbd.h b/libatalk/cnid/dbd/cnid_dbd.h index fed486eb..20a737c9 100644 --- a/libatalk/cnid/dbd/cnid_dbd.h +++ b/libatalk/cnid/dbd/cnid_dbd.h @@ -1,5 +1,5 @@ /* - * $Id: cnid_dbd.h,v 1.4 2009-10-13 22:55:37 didg Exp $ + * $Id: cnid_dbd.h,v 1.5 2009-11-24 12:18:19 didg Exp $ * * Copyright (C) Joerg Lenneis 2003 * All Rights Reserved. See COPYING. @@ -18,7 +18,7 @@ #include extern struct _cnid_module cnid_dbd_module; -extern struct _cnid_db *cnid_dbd_open (const char *, mode_t); +extern struct _cnid_db *cnid_dbd_open (const char *, mode_t, u_int32_t flags); extern void cnid_dbd_close (struct _cnid_db *); extern cnid_t cnid_dbd_add (struct _cnid_db *, const struct stat *, const cnid_t, char *, const size_t, cnid_t); diff --git a/libatalk/cnid/hash/cnid_hash.h b/libatalk/cnid/hash/cnid_hash.h index a3f8e4b8..a8592ffd 100644 --- a/libatalk/cnid/hash/cnid_hash.h +++ b/libatalk/cnid/hash/cnid_hash.h @@ -40,7 +40,7 @@ struct _cnid_hash_private { /* cnid_open.c */ extern struct _cnid_module cnid_hash_module; -extern struct _cnid_db *cnid_hash_open (const char *, mode_t); +extern struct _cnid_db *cnid_hash_open (const char *, mode_t, u_int32_t flags); /* cnid_close.c */ extern void cnid_hash_close (struct _cnid_db *); diff --git a/libatalk/cnid/hash/cnid_hash_open.c b/libatalk/cnid/hash/cnid_hash_open.c index 8a0d51cf..11ce7e4e 100644 --- a/libatalk/cnid/hash/cnid_hash_open.c +++ b/libatalk/cnid/hash/cnid_hash_open.c @@ -1,5 +1,5 @@ /* - * $Id: cnid_hash_open.c,v 1.2 2005-04-28 20:50:01 bfernhomberg Exp $ + * $Id: cnid_hash_open.c,v 1.3 2009-11-24 12:18:20 didg Exp $ * * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu) * All Rights Reserved. See COPYRIGHT. @@ -58,7 +58,7 @@ static struct _cnid_db *cnid_hash_new(const char *volpath) } /* ---------------------------- */ -struct _cnid_db *cnid_hash_open(const char *dir, mode_t mask) +struct _cnid_db *cnid_hash_open(const char *dir, mode_t mask, u_int32_t flags _U_) { struct stat st; struct _cnid_db *cdb; diff --git a/libatalk/cnid/last/cnid_last.c b/libatalk/cnid/last/cnid_last.c index 6f0f68ea..7c5c941f 100644 --- a/libatalk/cnid/last/cnid_last.c +++ b/libatalk/cnid/last/cnid_last.c @@ -1,6 +1,6 @@ /* - * $Id: cnid_last.c,v 1.3 2005-05-03 14:55:14 didg Exp $ + * $Id: cnid_last.c,v 1.4 2009-11-24 12:18:20 didg Exp $ * * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu) * All Rights Reserved. See COPYRIGHT. @@ -144,7 +144,7 @@ static struct _cnid_db *cnid_last_new(const char *volpath) return cdb; } -struct _cnid_db *cnid_last_open(const char *dir, mode_t mask _U_) +struct _cnid_db *cnid_last_open(const char *dir, mode_t mask _U_, u_int32_t flags _U_) { struct _cnid_db *cdb; diff --git a/libatalk/cnid/last/cnid_last.h b/libatalk/cnid/last/cnid_last.h index 45f6d3b5..b3277c54 100644 --- a/libatalk/cnid/last/cnid_last.h +++ b/libatalk/cnid/last/cnid_last.h @@ -20,7 +20,7 @@ struct _cnid_last_private { }; extern struct _cnid_module cnid_last_module; -extern struct _cnid_db *cnid_last_open (const char *, mode_t); +extern struct _cnid_db *cnid_last_open (const char *, mode_t, u_int32_t flags); extern void cnid_last_close (struct _cnid_db *); extern cnid_t cnid_last_add (struct _cnid_db *, const struct stat *, const cnid_t, char *, const size_t, cnid_t); diff --git a/libatalk/cnid/mtab/cnid_mtab.c b/libatalk/cnid/mtab/cnid_mtab.c index 4cd14a05..237f94ff 100644 --- a/libatalk/cnid/mtab/cnid_mtab.c +++ b/libatalk/cnid/mtab/cnid_mtab.c @@ -1,6 +1,6 @@ /* - * $Id: cnid_mtab.c,v 1.3 2009-11-24 08:59:25 franklahm Exp $ + * $Id: cnid_mtab.c,v 1.4 2009-11-24 12:18:20 didg Exp $ * * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu) * All Rights Reserved. See COPYRIGHT. @@ -96,7 +96,7 @@ static struct _cnid_db *cnid_mtab_new(const char *volpath) return cdb; } -struct _cnid_db *cnid_mtab_open(const char *dir, mode_t mask) +struct _cnid_db *cnid_mtab_open(const char *dir, mode_t mask, u_int32_t flags _U_) { struct _cnid_db *cdb; diff --git a/libatalk/cnid/tdb/cnid_tdb.h b/libatalk/cnid/tdb/cnid_tdb.h index 37c96de3..c54cf431 100644 --- a/libatalk/cnid/tdb/cnid_tdb.h +++ b/libatalk/cnid/tdb/cnid_tdb.h @@ -47,7 +47,7 @@ struct _cnid_tdb_private { /* cnid_open.c */ extern struct _cnid_module cnid_tdb_module; -extern struct _cnid_db *cnid_tdb_open (const char *, mode_t); +extern struct _cnid_db *cnid_tdb_open (const char *, mode_t, u_int32_t flags); /* cnid_close.c */ extern void cnid_tdb_close (struct _cnid_db *); diff --git a/libatalk/cnid/tdb/cnid_tdb_open.c b/libatalk/cnid/tdb/cnid_tdb_open.c index 5c23f373..3cf5f533 100644 --- a/libatalk/cnid/tdb/cnid_tdb_open.c +++ b/libatalk/cnid/tdb/cnid_tdb_open.c @@ -1,5 +1,5 @@ /* - * $Id: cnid_tdb_open.c,v 1.5 2009-11-21 13:38:11 didg Exp $ + * $Id: cnid_tdb_open.c,v 1.6 2009-11-24 12:18:20 didg Exp $ * * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu) * All Rights Reserved. See COPYRIGHT. @@ -63,7 +63,7 @@ static struct _cnid_db *cnid_tdb_new(const char *volpath) } /* ---------------------------- */ -struct _cnid_db *cnid_tdb_open(const char *dir, mode_t mask) +struct _cnid_db *cnid_tdb_open(const char *dir, mode_t mask, u_int32_t flags _U_) { struct stat st; struct _cnid_db *cdb; -- 2.39.2