When use client like nfs-ganesha hold ref of dir inode,
the dentry of the inode does not expirable because its
state is always lru_pinned.
The current code location does not tell nfs-ganesha to
release dir inodes, so we should call release_callback
to tell nfs-ganesha release first, and then trim dentry
when its state becomes unpin.
Fixes: https://tracker.ceph.com/issues/46355
Signed-off-by: sepia-liu <liuwei_coder@163.com>
(cherry picked from commit
60de0363ec7e1423665091bf42f67b78f11d9c1f)
all = false;
}
}
+ if (in->ll_ref == 1 && in->ino != MDS_INO_ROOT) {
+ _schedule_ino_release_callback(in.get());
+ }
if (all && in->ino != MDS_INO_ROOT) {
ldout(cct, 20) << __func__ << " counting as trimmed: " << *in << dendl;
trimmed++;
- _schedule_ino_release_callback(in.get());
}
}
}