···424424 * So we have our own inline version of it above. :-( */425425static inline int debugfs_positive(struct dentry *dentry)426426{427427- return dentry->d_inode && !d_unhashed(dentry);427427+ return d_really_is_positive(dentry) && !d_unhashed(dentry);428428}429429430430/* make sure at *open* time that the respective object won't go away. */···439439 * or has debugfs_remove() already been called? */440440 parent = file->f_path.dentry->d_parent;441441 /* not sure if this can happen: */442442- if (!parent || !parent->d_inode)442442+ if (!parent || d_really_is_negative(parent))443443 goto out;444444 /* serialize with d_delete() */445445- mutex_lock(&parent->d_inode->i_mutex);445445+ mutex_lock(&d_inode(parent)->i_mutex);446446 /* Make sure the object is still alive */447447 if (debugfs_positive(file->f_path.dentry)448448 && kref_get_unless_zero(kref))449449 ret = 0;450450- mutex_unlock(&parent->d_inode->i_mutex);450450+ mutex_unlock(&d_inode(parent)->i_mutex);451451 if (!ret) {452452 ret = single_open(file, show, data);453453 if (ret)
+8-8
drivers/infiniband/hw/ipath/ipath_fs.c
···8282{8383 int error;84848585- mutex_lock(&parent->d_inode->i_mutex);8585+ mutex_lock(&d_inode(parent)->i_mutex);8686 *dentry = lookup_one_len(name, parent, strlen(name));8787 if (!IS_ERR(*dentry))8888- error = ipathfs_mknod(parent->d_inode, *dentry,8888+ error = ipathfs_mknod(d_inode(parent), *dentry,8989 mode, fops, data);9090 else9191 error = PTR_ERR(*dentry);9292- mutex_unlock(&parent->d_inode->i_mutex);9292+ mutex_unlock(&d_inode(parent)->i_mutex);93939494 return error;9595}···277277 }278278279279 spin_lock(&tmp->d_lock);280280- if (!d_unhashed(tmp) && tmp->d_inode) {280280+ if (!d_unhashed(tmp) && d_really_is_positive(tmp)) {281281 dget_dlock(tmp);282282 __d_drop(tmp);283283 spin_unlock(&tmp->d_lock);284284- simple_unlink(parent->d_inode, tmp);284284+ simple_unlink(d_inode(parent), tmp);285285 } else286286 spin_unlock(&tmp->d_lock);287287···302302 int ret;303303304304 root = dget(sb->s_root);305305- mutex_lock(&root->d_inode->i_mutex);305305+ mutex_lock(&d_inode(root)->i_mutex);306306 snprintf(unit, sizeof unit, "%02d", dd->ipath_unit);307307 dir = lookup_one_len(unit, root, strlen(unit));308308···315315 remove_file(dir, "flash");316316 remove_file(dir, "atomic_counters");317317 d_delete(dir);318318- ret = simple_rmdir(root->d_inode, dir);318318+ ret = simple_rmdir(d_inode(root), dir);319319320320bail:321321- mutex_unlock(&root->d_inode->i_mutex);321321+ mutex_unlock(&d_inode(root)->i_mutex);322322 dput(root);323323 return ret;324324}