summaryrefslogtreecommitdiff
path: root/fs/btrfs/compat.h
diff options
context:
space:
mode:
authorBalaji Rao <balajirrao@gmail.com>2008-07-21 00:31:56 +0400
committerChris Mason <chris.mason@oracle.com>2008-09-25 19:04:06 +0400
commitbe6e8dc0ba84029997075a1ec77b4ddb863cbe15 (patch)
treeba65e49acd8bc55bfd2719a9d6ce65a81ee037c6 /fs/btrfs/compat.h
parent1a54ef8c11a0eaef59ff418089f109c27f8bd48d (diff)
downloadlinux-be6e8dc0ba84029997075a1ec77b4ddb863cbe15.tar.xz
NFS support for btrfs - v3
Date: Mon, 21 Jul 2008 02:01:56 +0530 Here's an implementation of NFS support for btrfs. It relies on the fixes which are going in to 2.6.28 for the NFS readdir/lookup deadlock. This uses the btrfs_iget helper introduced previously. [dwmw2: Tidy up a little, switch to d_obtain_alias() w/compat routine, change fh_type, store parent's root object ID where needed, fix some get_parent() and fs_to_dentry() bugs] Signed-off-by: Balaji Rao <balajirrao@gmail.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/compat.h')
-rw-r--r--fs/btrfs/compat.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/fs/btrfs/compat.h b/fs/btrfs/compat.h
index b3349a66999d..d45fb37887bc 100644
--- a/fs/btrfs/compat.h
+++ b/fs/btrfs/compat.h
@@ -5,6 +5,23 @@
#define trylock_page(page) (!TestSetPageLocked(page))
#endif
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,27)
+static inline struct dentry *d_obtain_alias(struct inode *inode)
+{
+ struct dentry *d;
+
+ if (!inode)
+ return NULL;
+ if (IS_ERR(inode))
+ return ERR_CAST(inode);
+
+ d = d_alloc_anon(inode);
+ if (!d)
+ iput(inode);
+ return d;
+}
+#endif
+
/*
* Even if AppArmor isn't enabled, it still has different prototypes.
* Add more distro/version pairs here to declare which has AppArmor applied.