Btrfs: Fix allocation completions in tree log replay
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / fs / btrfs / compat.h
CommitLineData
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)
9static 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)
26static inline void btrfs_drop_nlink(struct inode *inode)
27{
28 inode->i_nlink--;
29}
30
31static 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_ */