Home | History | Annotate | Download | only in module
      1 /**
      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 */
     20 void * 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 
     28 int 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 */
     56 uint 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 */
     64