]> err.no Git - linux-2.6/blobdiff - fs/xfs/linux-2.6/mrlock.h
Pull battery into release branch
[linux-2.6] / fs / xfs / linux-2.6 / mrlock.h
index 32e1ce0f04c94b0d7b130c2fc94360f667cb1e89..c110bb002665af5dce7d73d17cbb47943826d71d 100644 (file)
@@ -31,20 +31,30 @@ typedef struct {
        do { (mrp)->mr_writer = 0; init_rwsem(&(mrp)->mr_lock); } while (0)
 #define mrlock_init(mrp, t,n,s)        mrinit(mrp, n)
 #define mrfree(mrp)            do { } while (0)
-#define mraccess(mrp)          mraccessf(mrp, 0)
-#define mrupdate(mrp)          mrupdatef(mrp, 0)
 
-static inline void mraccessf(mrlock_t *mrp, int flags)
+static inline void mraccess(mrlock_t *mrp)
 {
        down_read(&mrp->mr_lock);
 }
 
-static inline void mrupdatef(mrlock_t *mrp, int flags)
+static inline void mrupdate(mrlock_t *mrp)
 {
        down_write(&mrp->mr_lock);
        mrp->mr_writer = 1;
 }
 
+static inline void mraccess_nested(mrlock_t *mrp, int subclass)
+{
+       down_read_nested(&mrp->mr_lock, subclass);
+}
+
+static inline void mrupdate_nested(mrlock_t *mrp, int subclass)
+{
+       down_write_nested(&mrp->mr_lock, subclass);
+       mrp->mr_writer = 1;
+}
+
+
 static inline int mrtryaccess(mrlock_t *mrp)
 {
        return down_read_trylock(&mrp->mr_lock);