if (!old_bh || old_de->ino != old_inode->i_ino) 
if (!old_bh || le16_to_cpu(old_de->ino) != old_inode->i_ino) 
static int bfs_rename(struct inode * old_dir, struct dentry * old_dentry, 			struct inode * new_dir, struct dentry * new_dentry){	struct inode * old_inode, * new_inode;	struct buffer_head * old_bh, * new_bh;	struct bfs_dirent * old_de, * new_de;			int error = -ENOENT;	old_bh = new_bh = NULL;	old_inode = old_dentry->d_inode;	if (S_ISDIR(old_inode->i_mode))		return -EINVAL;	lock_kernel();	old_bh = bfs_find_entry(old_dir, 				old_dentry->d_name.name, 				old_dentry->d_name.len, &old_de);	if (!old_bh || old_de->ino != old_inode->i_ino)		goto end_rename;	error = -EPERM;	new_inode = new_dentry->d_inode;	new_bh = bfs_find_entry(new_dir, 				new_dentry->d_name.name, 				new_dentry->d_name.len, &new_de);	if (new_bh && !new_inode) {		brelse(new_bh);		new_bh = NULL;	}	if (!new_bh) {		error = bfs_add_entry(new_dir, 					new_dentry->d_name.name,			 		new_dentry->d_name.len, old_inode->i_ino);		if (error)			goto end_rename;	}	old_de->ino = 0;	old_dir->i_ctime = old_dir->i_mtime = CURRENT_TIME_SEC;	mark_inode_dirty(old_dir);	if (new_inode) {		new_inode->i_nlink--;		new_inode->i_ctime = CURRENT_TIME_SEC;		mark_inode_dirty(new_inode);	}	mark_buffer_dirty(old_bh);	error = 0;end_rename:	unlock_kernel();	brelse(old_bh);	brelse(new_bh);	return error;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/fac92becdaecff64dd91daab0292c5131de92f0d/dir.c/buggy/fs/bfs/dir.c