[PATCH] lib/tdb: locking cleanup

tridge at samba.org tridge at samba.org
Thu Aug 27 21:55:47 MDT 2009

Hi Rusty,

 > -int tdb_brlock(struct tdb_context *tdb, tdb_off_t offset, 
 > -	       int rw_type, int lck_type, int probe, size_t len)
 > +int tdb_brlock(struct tdb_context *tdb,
 > +	       int rw_type, tdb_off_t offset, size_t len,
 > +	       enum tdb_lock_flags flags)
 >  {
 > -	struct flock fl;
 >  	int ret;
 >  	if (tdb->flags & TDB_NOLOCK) {
 >  		return 0;
 >  	}
 > +	if (flags & TDB_LOCK_MARK_ONLY) {
 > +		return 0;
 > +	}

Using an enum as a bitmask seems a bit strange. It's valid C, but
anyone reading it will think that the enum takes on the set of values
listed in the enum declaration, and may do something like a switch
statement with the various cases. Why use an enum when you mean it to
be masked like this?

btw, the only user I know of the 'mark' locks is ctdb. Have you or
Ronnie tested this patch with ctdb?

Cheers, Tridge

More information about the samba-technical mailing list