Commit | Line | Data |
---|---|---|
12fa8ec6 JM |
1 | #ifndef _COMPAT_H_ |
2 | #define _COMPAT_H_ | |
3 | ||
2db04966 DW |
4 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,26) |
5 | #define trylock_page(page) (!TestSetPageLocked(page)) | |
6 | #endif | |
12fa8ec6 | 7 | |
be6e8dc0 BR |
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 | ||
e02119d5 CM |
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 | ||
12fa8ec6 JM |
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_ */ |