summaryrefslogtreecommitdiff
path: root/source3/include/smb_share_modes.h
diff options
context:
space:
mode:
authorTim Prouty <tprouty@samba.org>2009-02-15 23:45:28 -0800
committerTim Prouty <tprouty@samba.org>2009-02-19 20:58:26 -0800
commite4675ce8db436ac572fcc476b9bfb1116e997f9f (patch)
tree7381a8a3aa92536fbfa58a75dee450f1f26d66ce /source3/include/smb_share_modes.h
parent6fbebb5369211b72545a1dd588bc6b9fa04210a1 (diff)
downloadsamba-e4675ce8db436ac572fcc476b9bfb1116e997f9f.tar.gz
s3: Add extid to the dev/inode pair
This extends the file_id struct to add an additional generic uint64_t field: extid. For backwards compatibility with dev/inodes stored in xattr_tdbs and acl_tdbs, the ext id is ignored for these databases. This patch should cause no functional change on systems that don't use SMB_VFS_FILE_ID_CREATE to set the extid. Existing code that uses the smb_share_mode library will need to be updated to be compatibile with the new extid.
Diffstat (limited to 'source3/include/smb_share_modes.h')
-rw-r--r--source3/include/smb_share_modes.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/source3/include/smb_share_modes.h b/source3/include/smb_share_modes.h
index 101bec82453..4a2d832cc2c 100644
--- a/source3/include/smb_share_modes.h
+++ b/source3/include/smb_share_modes.h
@@ -46,6 +46,7 @@ struct smbdb_ctx;
struct smb_share_mode_entry {
uint64_t dev;
uint64_t ino;
+ uint64_t extid;
uint32_t share_access;
uint32_t access_mask;
struct timeval open_time;
@@ -66,11 +67,13 @@ int smb_share_mode_db_close(struct smbdb_ctx *db_ctx);
int smb_lock_share_mode_entry(struct smbdb_ctx *db_ctx,
uint64_t dev,
- uint64_t ino);
+ uint64_t ino,
+ uint64_t extid);
int smb_unlock_share_mode_entry(struct smbdb_ctx *db_ctx,
uint64_t dev,
- uint64_t ino);
+ uint64_t ino,
+ uint64_t extid);
/*
* Share mode database accessor functions.
@@ -79,23 +82,27 @@ int smb_unlock_share_mode_entry(struct smbdb_ctx *db_ctx,
int smb_get_share_mode_entries(struct smbdb_ctx *db_ctx,
uint64_t dev,
uint64_t ino,
+ uint64_t extid,
struct smb_share_mode_entry **pp_list,
unsigned char *p_delete_on_close);
int smb_create_share_mode_entry(struct smbdb_ctx *db_ctx,
uint64_t dev,
uint64_t ino,
+ uint64_t extid,
const struct smb_share_mode_entry *set_entry,
const char *path);
int smb_delete_share_mode_entry(struct smbdb_ctx *db_ctx,
uint64_t dev,
uint64_t ino,
+ uint64_t extid,
const struct smb_share_mode_entry *set_entry);
int smb_change_share_mode_entry(struct smbdb_ctx *db_ctx,
uint64_t dev,
uint64_t ino,
+ uint64_t extid,
const struct smb_share_mode_entry *set_entry,
const struct smb_share_mode_entry *new_entry);