4
4
## DP: Add support for RT Kernels, based on patch/rt-compat.patch
7
diff -urNad aufs-0+20080317~/fs/aufs/branch.c aufs-0+20080317/fs/aufs/branch.c
8
--- aufs-0+20080317~/fs/aufs/branch.c 2008-03-10 05:41:38.000000000 +0100
9
+++ aufs-0+20080317/fs/aufs/branch.c 2008-03-17 13:38:26.000000000 +0100
11
if (!br_writable(mod->perm)) {
7
Index: aufs-0+20080415/fs/aufs/branch.c
8
===================================================================
9
--- aufs-0+20080415.orig/fs/aufs/branch.c 2008-04-14 01:37:42.000000000 +0200
10
+++ aufs-0+20080415/fs/aufs/branch.c 2008-04-15 15:37:01.000000000 +0200
12
if (!au_br_writable(mod->perm)) {
12
13
/* rw --> ro, file might be mmapped */
13
14
struct file *file, *hf;
17
18
DiMustNoWaiters(root);
19
20
* since BKL (and sbinfo) is locked
21
22
AuDebugOn(!kernel_locked());
34
35
/* aufs_write_lock() calls ..._child() */
35
36
di_write_lock_child(root);
36
diff -urNad aufs-0+20080317~/fs/aufs/debug.c aufs-0+20080317/fs/aufs/debug.c
37
--- aufs-0+20080317~/fs/aufs/debug.c 2008-03-17 00:46:30.000000000 +0100
38
+++ aufs-0+20080317/fs/aufs/debug.c 2008-03-17 13:38:26.000000000 +0100
37
Index: aufs-0+20080415/fs/aufs/debug.c
38
===================================================================
39
--- aufs-0+20080415.orig/fs/aufs/debug.c 2008-04-14 01:38:37.000000000 +0200
40
+++ aufs-0+20080415/fs/aufs/debug.c 2008-04-15 15:37:01.000000000 +0200
41
43
i_size_read(inode), (u64)inode->i_blocks,
42
44
timespec_to_ns(&inode->i_ctime) & 0x0ffff,
45
47
inode->i_state, inode->i_flags, inode->i_generation,
46
48
l ? ", wh " : "", l, n);
48
diff -urNad aufs-0+20080317~/fs/aufs/misc.h aufs-0+20080317/fs/aufs/misc.h
49
--- aufs-0+20080317~/fs/aufs/misc.h 2008-03-17 00:44:47.000000000 +0100
50
+++ aufs-0+20080317/fs/aufs/misc.h 2008-03-17 13:38:26.000000000 +0100
50
Index: aufs-0+20080415/fs/aufs/misc.h
51
===================================================================
52
--- aufs-0+20080415.orig/fs/aufs/misc.h 2008-04-14 01:43:36.000000000 +0200
53
+++ aufs-0+20080415/fs/aufs/misc.h 2008-04-15 15:41:44.000000000 +0200
52
55
#include <linux/version.h>
53
56
#include <linux/aufs_type.h>
191
194
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
192
195
#define I_MUTEX_QUOTA 0
193
196
#define lockdep_off() do {} while (0)
195
198
/* ---------------------------------------------------------------------- */
198
201
- struct rw_semaphore rwsem;
199
+ struct au_rw_semaphore rwsem;
202
+ struct au_rw_semaphore rwsem;
200
203
#ifdef CONFIG_AUFS_DEBUG
204
static inline void rw_init_nolock(struct aufs_rwsem *rw)
207
static inline void au_rw_init_nolock(struct au_rwsem *rw)
207
210
- init_rwsem(&rw->rwsem);
208
211
+ au_init_rwsem(&rw->rwsem);
211
static inline void rw_init_wlock(struct aufs_rwsem *rw)
214
static inline void au_rw_init_wlock(struct au_rwsem *rw)
216
au_rw_init_nolock(rw);
214
217
- down_write(&rw->rwsem);
215
218
+ au_down_write(&rw->rwsem);
218
static inline void rw_init_wlock_nested(struct aufs_rwsem *rw, unsigned int lsc)
221
static inline void au_rw_init_wlock_nested(struct au_rwsem *rw,
224
au_rw_init_nolock(rw);
221
225
- down_write_nested(&rw->rwsem, lsc);
222
226
+ au_down_write_nested(&rw->rwsem, lsc);
225
static inline void rw_read_lock(struct aufs_rwsem *rw)
229
static inline void au_rw_read_lock(struct au_rwsem *rw)
227
231
- down_read(&rw->rwsem);
228
232
+ au_down_read(&rw->rwsem);
232
static inline void rw_read_lock_nested(struct aufs_rwsem *rw, unsigned int lsc)
236
static inline void au_rw_read_lock_nested(struct au_rwsem *rw, unsigned int lsc)
234
238
- down_read_nested(&rw->rwsem, lsc);
235
239
+ au_down_read_nested(&rw->rwsem, lsc);
239
static inline void rw_read_unlock(struct aufs_rwsem *rw)
243
static inline void au_rw_read_unlock(struct au_rwsem *rw)
242
246
- up_read(&rw->rwsem);
243
247
+ au_up_read(&rw->rwsem);
246
static inline void rw_dgrade_lock(struct aufs_rwsem *rw)
250
static inline void au_rw_dgrade_lock(struct au_rwsem *rw)
249
253
- downgrade_write(&rw->rwsem);
250
254
+ au_downgrade_write(&rw->rwsem);
253
static inline void rw_write_lock(struct aufs_rwsem *rw)
257
static inline void au_rw_write_lock(struct au_rwsem *rw)
255
259
- down_write(&rw->rwsem);
256
260
+ au_down_write(&rw->rwsem);
259
static inline void rw_write_lock_nested(struct aufs_rwsem *rw, unsigned int lsc)
263
static inline void au_rw_write_lock_nested(struct au_rwsem *rw,
261
266
- down_write_nested(&rw->rwsem, lsc);
262
267
+ au_down_write_nested(&rw->rwsem, lsc);
265
static inline void rw_write_unlock(struct aufs_rwsem *rw)
270
static inline void au_rw_write_unlock(struct au_rwsem *rw)
267
272
- up_write(&rw->rwsem);
268
273
+ au_up_write(&rw->rwsem);
271
276
/* why is not _nested version defined */
272
static inline int rw_read_trylock(struct aufs_rwsem *rw)
277
static inline int au_rw_read_trylock(struct au_rwsem *rw)
274
279
- int ret = down_read_trylock(&rw->rwsem);
275
280
+ int ret = au_down_read_trylock(&rw->rwsem);
281
static inline int rw_write_trylock(struct aufs_rwsem *rw)
286
static inline int au_rw_write_trylock(struct au_rwsem *rw)
283
288
- return down_write_trylock(&rw->rwsem);
284
289
+ return au_down_write_trylock(&rw->rwsem);
290
295
/* to debug easier, do not make them inlined functions */
291
#define RwMustNoWaiters(rw) AuDebugOn(!list_empty(&(rw)->rwsem.wait_list))
292
-#define RwMustAnyLock(rw) AuDebugOn(down_write_trylock(&(rw)->rwsem))
293
+#define RwMustAnyLock(rw) AuDebugOn(au_down_write_trylock(&(rw)->rwsem))
296
#define AuRwMustNoWaiters(rw) AuDebugOn(!list_empty(&(rw)->rwsem.wait_list))
297
-#define AuRwMustAnyLock(rw) AuDebugOn(down_write_trylock(&(rw)->rwsem))
298
+#define AuRwMustAnyLock(rw) AuDebugOn(au_down_write_trylock(&(rw)->rwsem))
294
299
#ifdef CONFIG_AUFS_DEBUG
295
#define RwMustReadLock(rw) do { \
300
#define AuRwMustReadLock(rw) do { \
301
AuRwMustAnyLock(rw); \