diff options
Diffstat (limited to 'fs/btrfs/compat.h')
-rw-r--r-- | fs/btrfs/compat.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/fs/btrfs/compat.h b/fs/btrfs/compat.h new file mode 100644 index 000000000000..b0ed1887d9b1 --- /dev/null +++ b/fs/btrfs/compat.h | |||
@@ -0,0 +1,60 @@ | |||
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_ */ | ||