Btrfs: Add a write ahead tree log to optimize synchronous operations
[safe/jmp/linux-2.6] / fs / btrfs / compat.h
1 #ifndef _COMPAT_H_
2 #define _COMPAT_H_
3
4 #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,26)
5 #define trylock_page(page) (!TestSetPageLocked(page))
6 #endif
7
8 #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,27)
9 static inline struct dentry *d_obtain_alias(struct inode *inode)
10 {
11         struct dentry *d;
12
13         if (!inode)
14                 return NULL;
15         if (IS_ERR(inode))
16                 return ERR_CAST(inode);
17
18         d = d_alloc_anon(inode);
19         if (!d)
20                 iput(inode);
21         return d;
22 }
23 #endif
24
25 #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
26 static inline void btrfs_drop_nlink(struct inode *inode)
27 {
28         inode->i_nlink--;
29 }
30
31 static inline void btrfs_inc_nlink(struct inode *inode)
32 {
33         inode->i_nlink++;
34 }
35 #else
36 # define btrfs_drop_nlink(inode) drop_nlink(inode)
37 # define btrfs_inc_nlink(inode) inc_nlink(inode)
38 #endif
39
40 /*
41  * Even if AppArmor isn't enabled, it still has different prototypes.
42  * Add more distro/version pairs here to declare which has AppArmor applied.
43  */
44 #if defined(CONFIG_SUSE_KERNEL)
45 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
46 # define REMOVE_SUID_PATH 1
47 # endif
48 #endif
49
50 /*
51  * catch any other distros that have patched in apparmor.  This isn't
52  * 100% reliable because it won't catch people that hand compile their
53  * own distro kernels without apparmor compiled in.  But, it is better
54  * than nothing.
55  */
56 #ifdef CONFIG_SECURITY_APPARMOR
57 # define REMOVE_SUID_PATH 1
58 #endif
59
60 #endif /* _COMPAT_H_ */