/**
* @file compat.c
* This file is intended to be up-to-date with the last linux version and
* provide work-arounds for missing features in previous kernel version
*
* @remark Copyright 2002 OProfile authors
* @remark Read the file COPYING
*
* @author John Levon
* @author Philippe Elie
*/
#include "op_dcache.h"
#include <linux/ioport.h>
#ifdef NEED_2_2_DENTRIES
/* note - assumes you only test for NULL, and not
* actually care about the return value */
void * compat_request_region(unsigned long start, unsigned long n, char const * name)
{
if (check_region(start, n) != 0)
return NULL;
request_region(start, n, name);
return (void *)1;
}
int wind_dentries_2_2(struct dentry * dentry)
{
struct dentry * root = current->fs->root;
if (dentry->d_parent != dentry && list_empty(&dentry->d_hash))
return 0;
for (;;) {
struct dentry * parent;
if (dentry == root)
break;
dentry = dentry->d_covers;
parent = dentry->d_parent;
if (dentry == parent)
break;
push_dname(&dentry->d_name);
dentry = parent;
}
return 1;
}
/* called with note_lock held */
uint do_path_hash_2_2(struct dentry * dentry)
{
/* BKL is already taken */
return do_hash(dentry, 0, 0, 0);
}
#endif /* NEED_2_2_DENTRIES */