From f246aa5f84a5233b6525ae43456a8da5b7e92984 Mon Sep 17 00:00:00 2001 From: Marc Dionne Date: Wed, 21 Mar 2012 22:19:04 -0400 Subject: [PATCH] Linux 3.4: Switch to d_make_root If d_make_root is available, use it instead of d_alloc_root. The helper was introduced in 3.3, and d_alloc_root gets removed in 3.4. Change-Id: I39aaa6fd14d04c05ad9cb5b610e7f12f70fe0c94 Reviewed-on: http://gerrit.openafs.org/6931 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- acinclude.m4 | 3 +++ src/afs/LINUX/osi_vfsops.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index 92cad6f..91231ba 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -848,6 +848,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) AC_CHECK_LINUX_FUNC([d_alloc_anon], [#include ], [d_alloc_anon(NULL);]) + AC_CHECK_LINUX_FUNC([d_make_root], + [#include ], + [d_make_root(NULL);]) AC_CHECK_LINUX_FUNC([do_sync_read], [#include ], [do_sync_read(NULL, NULL, 0, NULL);]) diff --git a/src/afs/LINUX/osi_vfsops.c b/src/afs/LINUX/osi_vfsops.c index 4c44988..9bdc304 100644 --- a/src/afs/LINUX/osi_vfsops.c +++ b/src/afs/LINUX/osi_vfsops.c @@ -184,7 +184,11 @@ afs_root(struct super_block *afsp) /* setup super_block and mount point inode. */ afs_globalVp = tvp; +#if defined(HAVE_LINUX_D_MAKE_ROOT) + afsp->s_root = d_make_root(ip); +#else afsp->s_root = d_alloc_root(ip); +#endif #if !defined(STRUCT_SUPER_BLOCK_HAS_S_D_OP) afsp->s_root->d_op = &afs_dentry_operations; #endif -- 1.9.4