diff options
Diffstat (limited to 'fs/coda/cache.c')
| -rw-r--r-- | fs/coda/cache.c | 23 | 
1 files changed, 9 insertions, 14 deletions
diff --git a/fs/coda/cache.c b/fs/coda/cache.c index 9060f08e70c..1da168c61d3 100644 --- a/fs/coda/cache.c +++ b/fs/coda/cache.c @@ -20,10 +20,9 @@  #include <linux/spinlock.h>  #include <linux/coda.h> -#include <linux/coda_linux.h>  #include <linux/coda_psdev.h> -#include <linux/coda_fs_i.h> -#include <linux/coda_cache.h> +#include "coda_linux.h" +#include "coda_cache.h"  static atomic_t permission_epoch = ATOMIC_INIT(0); @@ -34,7 +33,7 @@ void coda_cache_enter(struct inode *inode, int mask)  	spin_lock(&cii->c_lock);  	cii->c_cached_epoch = atomic_read(&permission_epoch); -	if (cii->c_uid != current_fsuid()) { +	if (!uid_eq(cii->c_uid, current_fsuid())) {  		cii->c_uid = current_fsuid();                  cii->c_cached_perm = mask;          } else @@ -66,7 +65,7 @@ int coda_cache_check(struct inode *inode, int mask)  	spin_lock(&cii->c_lock);  	hit = (mask & cii->c_cached_perm) == mask && -	    cii->c_uid == current_fsuid() && +	    uid_eq(cii->c_uid, current_fsuid()) &&  	    cii->c_cached_epoch == atomic_read(&permission_epoch);  	spin_unlock(&cii->c_lock); @@ -90,19 +89,15 @@ int coda_cache_check(struct inode *inode, int mask)  /* this won't do any harm: just flag all children */  static void coda_flag_children(struct dentry *parent, int flag)  { -	struct list_head *child;  	struct dentry *de; -	spin_lock(&dcache_lock); -	list_for_each(child, &parent->d_subdirs) -	{ -		de = list_entry(child, struct dentry, d_u.d_child); +	spin_lock(&parent->d_lock); +	list_for_each_entry(de, &parent->d_subdirs, d_u.d_child) {  		/* don't know what to do with negative dentries */ -		if ( ! de->d_inode )  -			continue; -		coda_flag_inode(de->d_inode, flag); +		if (de->d_inode )  +			coda_flag_inode(de->d_inode, flag);  	} -	spin_unlock(&dcache_lock); +	spin_unlock(&parent->d_lock);  	return;   }  | 
