Ideas on using locking.tdb from Netatalk to implement combined share mode database

Frank Lahm franklahm at
Wed Feb 23 12:18:24 MST 2011

Hi Volker,

2011/2/23 Volker Lendecke <Volker.Lendecke at>:
> On Wed, Feb 23, 2011 at 04:06:00PM +0100, Frank Lahm wrote:
>> I'm in the process of a decent rewrite of certain Netatalk (Opensource
>> AFP filserver) subsystems. One of them is acess/deny mode subsytem
>> which is the AFP pendant to share modes in CIFS. We're currently
>> storing these as brls -- an ancient but working hack.
>> I'm now about to rewrite this stuff to use a tbd database. In order to
>> have a fully spec conforming cross-platform server (Samba for Win
>> clients, Netatlak for AFP clients) it would be necessary to integrate
>> both sytems.
>> So I went ahead poking around in source3, hoping I could find a way where
>> - Netatalk's afpd processes would be able to use Samba's locking.tdb
>> (if configured to do so)
>> I've found "include/smb_share_modes.h" and libsmbsharemodes which look
>> promising.
>> Semantic differences [1] let aside for now, could this approach work out!
> That would definitely be the right place to put it.


> It would
> be an interesting project for many different reasons.

So says me.

> Be
> aware though that at this moment locking.tdb is being seen
> as pretty much a Samba-internal database that we are free to
> change when it becomes necessary.

Yes. But not accessing locking.tdb directly but using the
smb_share_modes.h exported API should be ok, right ?

> We just recently had to
> change the format because some problems with hard links were
> reported. The main challenge would be to coordinate those
> format changes and potentially provide backwards
> compatibility layers and such things. In theory we could
> provide a common API wrapping that, but this would need to
> be pretty well designed, because it needs to be FAST. It
> also needs to back onto ctdb for clustered Samba.

Isn't smb_share_modes.h already providing such a API ?

> Interesting, but challenging idea.

Having just rewritten the Netatalk VFS adding a new backend storing
all Mac extra data in fs native extended attributes, this project
doesn't look that challenging anymore it did a year back. ;)


More information about the samba-technical mailing list