From patchwork Mon Jun 1 17:54:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 225098 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 323C0C433E3 for ; Mon, 1 Jun 2020 18:04:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 08B4C2077D for ; Mon, 1 Jun 2020 18:04:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1591034690; bh=815sd3/N/OJXu0yntgcFczQk9XkEatPIzA9X8Rd9R/Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=b9ID1l9lofj/HiYuFQkM9pM+zHFIBUCQsGHEdqA0o9DBlkTA5+BqGWJ7tI58RTx06 /DgZX3iW3VpmmFN9Hp7AbhUISFZZHjUMuui9n4wDzMjOgWNDRUs2Md2uvP7+G+oDdE AND6BmB8s86Dt5Dzi8SJuoJUbFcTaAq+Zun//PiY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730249AbgFASEs (ORCPT ); Mon, 1 Jun 2020 14:04:48 -0400 Received: from mail.kernel.org ([198.145.29.99]:49670 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730246AbgFASEs (ORCPT ); Mon, 1 Jun 2020 14:04:48 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D72EF2077D; Mon, 1 Jun 2020 18:04:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1591034687; bh=815sd3/N/OJXu0yntgcFczQk9XkEatPIzA9X8Rd9R/Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1157LnbtOx6HGDHB1GbV8luTA+PVnAiDMymW9IRQmIETPUBVyTU6/PFd2TTpIXwMh TXe4B91q67zhmo60DmTIekRpnvvrbo52yfwAxAymHMD9I1ZwCwjS9dhTabAxRCNCaq OyorgZAvhvroqDtHEXtl2Ior8P05ypxPzh7AMk9w= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jerry Lee , Ilya Dryomov , Sasha Levin Subject: [PATCH 4.19 63/95] libceph: ignore pool overlay and cache logic on redirects Date: Mon, 1 Jun 2020 19:54:03 +0200 Message-Id: <20200601174031.022840356@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200601174020.759151073@linuxfoundation.org> References: <20200601174020.759151073@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jerry Lee [ Upstream commit 890bd0f8997ae6ac0a367dd5146154a3963306dd ] OSD client should ignore cache/overlay flag if got redirect reply. Otherwise, the client hangs when the cache tier is in forward mode. [ idryomov: Redirects are effectively deprecated and no longer used or tested. The original tiering modes based on redirects are inherently flawed because redirects can race and reorder, potentially resulting in data corruption. The new proxy and readproxy tiering modes should be used instead of forward and readforward. Still marking for stable as obviously correct, though. ] Cc: stable@vger.kernel.org URL: https://tracker.ceph.com/issues/23296 URL: https://tracker.ceph.com/issues/36406 Signed-off-by: Jerry Lee Reviewed-by: Ilya Dryomov Signed-off-by: Ilya Dryomov Signed-off-by: Sasha Levin --- net/ceph/osd_client.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index 76c41a84550e..b8c4aea42917 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c @@ -3540,7 +3540,9 @@ static void handle_reply(struct ceph_osd *osd, struct ceph_msg *msg) * supported. */ req->r_t.target_oloc.pool = m.redirect.oloc.pool; - req->r_flags |= CEPH_OSD_FLAG_REDIRECTED; + req->r_flags |= CEPH_OSD_FLAG_REDIRECTED | + CEPH_OSD_FLAG_IGNORE_OVERLAY | + CEPH_OSD_FLAG_IGNORE_CACHE; req->r_tid = 0; __submit_request(req, false); goto out_unlock_osdc;