LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
LINUX_FS_STRUCT_SUPER_HAS_EVICT_INODE
LINUX_FS_STRUCT_SUPER_BLOCK_HAS_S_BDI
+ AC_CHECK_LINUX_STRUCT([super_block], [s_d_op], [fs.h])
LINUX_STRUCT_BDI_HAS_NAME
LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
sb->s_blocksize_bits = 10;
sb->s_magic = AFS_VFSMAGIC;
sb->s_op = &afs_sops; /* Super block (vfs) ops */
+
+#if defined(STRUCT_SUPER_BLOCK_HAS_S_D_OP)
+ sb->s_d_op = &afs_dentry_operations;
+#endif
+
+#if defined(AFS_LINUX26_ENV)
/* used for inodes backing_dev_info field, also */
afs_backing_dev_info = osi_Alloc(sizeof(struct backing_dev_info));
-#if defined(HAVE_BDI_INIT)
+# if defined(HAVE_BDI_INIT)
bdi_init(afs_backing_dev_info);
-#endif
-#if defined(STRUCT_BDI_HAS_NAME)
+# endif
+# if defined(STRUCT_BDI_HAS_NAME)
afs_backing_dev_info->name = "openafs";
-#endif
+# endif
afs_backing_dev_info->ra_pages = 0;
-#if defined (STRUCT_SUPER_BLOCK_HAS_S_BDI)
+# if defined (STRUCT_SUPER_BLOCK_HAS_S_BDI)
sb->s_bdi = afs_backing_dev_info;
/* The name specified here will appear in the flushing thread name - flush-afs */
bdi_register(afs_backing_dev_info, NULL, "afs");
#else
afsp->s_root = d_alloc_root(ip, NULL);
#endif
+#if !defined(STRUCT_SUPER_BLOCK_HAS_S_D_OP)
afsp->s_root->d_op = &afs_dentry_operations;
+#endif
} else
code = ENOENT;
}
afs_getattr(vcp, &vattr, credp);
afs_fill_inode(ip, &vattr);
insert_inode_hash(ip);
+#if !defined(STRUCT_SUPER_BLOCK_HAS_S_D_OP)
dp->d_op = &afs_dentry_operations;
+#endif
dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion);
d_instantiate(dp, ip);
}
)
insert_inode_hash(ip);
}
+#if !defined(STRUCT_SUPER_BLOCK_HAS_S_D_OP)
dp->d_op = &afs_dentry_operations;
+#endif
dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion);
AFS_GUNLOCK();
afs_getattr(tvcp, &vattr, credp);
afs_fill_inode(ip, &vattr);
+#if !defined(STRUCT_SUPER_BLOCK_HAS_S_D_OP)
dp->d_op = &afs_dentry_operations;
+#endif
dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion);
d_instantiate(dp, ip);
}