|
@@ -88,35 +88,6 @@ EXPORT_SYMBOL(rename_lock);
|
|
|
|
|
|
static struct kmem_cache *dentry_cache __read_mostly;
|
|
|
|
|
|
-/**
|
|
|
- * read_seqbegin_or_lock - begin a sequence number check or locking block
|
|
|
- * @lock: sequence lock
|
|
|
- * @seq : sequence number to be checked
|
|
|
- *
|
|
|
- * First try it once optimistically without taking the lock. If that fails,
|
|
|
- * take the lock. The sequence number is also used as a marker for deciding
|
|
|
- * whether to be a reader (even) or writer (odd).
|
|
|
- * N.B. seq must be initialized to an even number to begin with.
|
|
|
- */
|
|
|
-static inline void read_seqbegin_or_lock(seqlock_t *lock, int *seq)
|
|
|
-{
|
|
|
- if (!(*seq & 1)) /* Even */
|
|
|
- *seq = read_seqbegin(lock);
|
|
|
- else /* Odd */
|
|
|
- read_seqlock_excl(lock);
|
|
|
-}
|
|
|
-
|
|
|
-static inline int need_seqretry(seqlock_t *lock, int seq)
|
|
|
-{
|
|
|
- return !(seq & 1) && read_seqretry(lock, seq);
|
|
|
-}
|
|
|
-
|
|
|
-static inline void done_seqretry(seqlock_t *lock, int seq)
|
|
|
-{
|
|
|
- if (seq & 1)
|
|
|
- read_sequnlock_excl(lock);
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* This is the single most critical data structure when it comes
|
|
|
* to the dcache: the hashtable for lookups. Somebody should try
|