RE: [PATCH] Ceph: Make sure stale dentries should be unhashed successfully in time.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,   Ilya

    We encountered this problem in our production environment in which hosts are running CentOS 7.2.

Indeed, the kernel shipped with that release is a little outdated for the kernel ceph-client,  so we would consider an upgrade.

Thanks,

    Yupeng

________________________________________
From: Ilya Dryomov [idryomov@xxxxxxxxx]
Sent: Friday, March 02, 2018 17:18
To: 陈玉鹏
Cc: ceph-devel@xxxxxxxxxxxxxxx; bel5f5@xxxxxxxxx
Subject: Re: [PATCH] Ceph: Make sure stale dentries should be unhashed successfully in time.

On Fri, Mar 2, 2018 at 8:40 AM, 陈玉鹏 <chenyupeng-it@xxxxxx> wrote:
> Prior to kernel v3.19, d_invalidate() might not unhash stale dentries due to reference count,
> so the stale dentries are left in the memory, causing a delayed expiration.
>
> Fixes: http://tracker.ceph.com/issues/23097
>
> Signed-off-by: Yupeng Chen <chenyupeng-it@xxxxxx>
> ---
>  fs/ceph/inode.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
> index c6ec5aa..70a38f2 100644
> --- a/fs/ceph/inode.c
> +++ b/fs/ceph/inode.c
> @@ -1345,6 +1345,10 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req)
>                              dn, d_inode(dn), ceph_vinop(d_inode(dn)),
>                              ceph_vinop(in));
>                         d_invalidate(dn);
> +                       /* Prito to v3.19,d_invalidate might unhash the dentry unsuccessfully.*/
> +                       if (!d_unhashed(dn)) {
> +                               d_drop(dn);
> +                       }
>                         have_lease = false;
>                 }
>

Kernel 3.19 came out three years ago, what are aiming for here?

This won't be the only issue you see if you keep running something
older than 3.19.  Tons of things have been fixed since then.  I'd
strongly recommend an upgrade.

Thanks,

                Ilya
?韬{.n?????%??檩??w?{.n????u朕?Ф?塄}?财??j:+v??????2??璀??摺?囤??z夸z罐?+?????w棹f




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux