blob: a8c17fbe1bfe070cfba46f88ad4ebc6b6e35ce34 [file] [log] [blame]
Mike Dodd8cfa7022010-11-17 11:12:26 -08001/**
2 * @file compat.c
3 * This file is intended to be up-to-date with the last linux version and
4 * provide work-arounds for missing features in previous kernel version
5 *
6 * @remark Copyright 2002 OProfile authors
7 * @remark Read the file COPYING
8 *
9 * @author John Levon
10 * @author Philippe Elie
11 */
12
13#include "op_dcache.h"
14#include <linux/ioport.h>
15
16#ifdef NEED_2_2_DENTRIES
17
18/* note - assumes you only test for NULL, and not
19 * actually care about the return value */
20void * compat_request_region(unsigned long start, unsigned long n, char const * name)
21{
22 if (check_region(start, n) != 0)
23 return NULL;
24 request_region(start, n, name);
25 return (void *)1;
26}
27
28int wind_dentries_2_2(struct dentry * dentry)
29{
30 struct dentry * root = current->fs->root;
31
32 if (dentry->d_parent != dentry && list_empty(&dentry->d_hash))
33 return 0;
34
35 for (;;) {
36 struct dentry * parent;
37
38 if (dentry == root)
39 break;
40
41 dentry = dentry->d_covers;
42 parent = dentry->d_parent;
43
44 if (dentry == parent)
45 break;
46
47 push_dname(&dentry->d_name);
48
49 dentry = parent;
50 }
51
52 return 1;
53}
54
55/* called with note_lock held */
56uint do_path_hash_2_2(struct dentry * dentry)
57{
58 /* BKL is already taken */
59
60 return do_hash(dentry, 0, 0, 0);
61}
62
63#endif /* NEED_2_2_DENTRIES */