X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fzpl_ctldir.c;h=08970170760c7f895e835e4009ed0fb721b6c9f7;hb=36f86f73f68548f46eb3229c8adf583d59fa9988;hp=2e5209f8c094645ea431f3d9e115a35dff4a2495;hpb=f1a05fa11484d67161606fd1ecf50bf2abc25ced;p=zfs.git diff --git a/module/zfs/zpl_ctldir.c b/module/zfs/zpl_ctldir.c index 2e5209f..0897017 100644 --- a/module/zfs/zpl_ctldir.c +++ b/module/zfs/zpl_ctldir.c @@ -267,6 +267,7 @@ zpl_snapdir_lookup(struct inode *dip, struct dentry *dentry, return ERR_PTR(error); ASSERT(error == 0 || ip == NULL); + d_clear_d_op(dentry); d_set_d_op(dentry, &zpl_dops_snapdirs); return d_splice_alias(ip, dentry); @@ -366,10 +367,11 @@ zpl_snapdir_mkdir(struct inode *dip, struct dentry *dentry, zpl_umode_t mode) crhold(cr); vap = kmem_zalloc(sizeof(vattr_t), KM_SLEEP); - zpl_vap_init(vap, dip, dentry, mode | S_IFDIR, cr); + zpl_vap_init(vap, dip, mode | S_IFDIR, cr); error = -zfsctl_snapdir_mkdir(dip, dname(dentry), vap, &ip, cr, 0); if (error == 0) { + d_clear_d_op(dentry); d_set_d_op(dentry, &zpl_dops_snapdirs); d_instantiate(dentry, ip); }