Received: by 2002:ab2:6f44:0:b0:1fd:c486:4f03 with SMTP id l4csp169484lqq; Wed, 12 Jun 2024 22:07:08 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWuVv6qAzK1UxayaT/vKoZRokXLpP9U7SYRWkDYEZmf8sb18Qd40gz8gGYbDnp5fX253cIJSNV1++KZF7jHZz6ihGsWVyyy6OT2SNFAxg== X-Google-Smtp-Source: AGHT+IEQn2lLh60Fi/o5q34StcCFVsi/3kYttMRcnBBPqRWT/tPFs2Z2XTsAri/K2SjAQghdm3fl X-Received: by 2002:a25:ef0b:0:b0:dfb:bf0:59db with SMTP id 3f1490d57ef6-dfe684357c7mr3530469276.41.1718255228125; Wed, 12 Jun 2024 22:07:08 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718255228; cv=pass; d=google.com; s=arc-20160816; b=Ki1rFmtiGVgXeRKamg3uC/xOxUsvXCkKMLplYAGI7XiWZfUi0o5ob3+p8pwV6n9orv gkcuYRyFjACqsa26DcqVVprAYVeExysX3PZqppthaEHqF1y2DInEnwFifD9cHwT9QjQ+ zNS5cufi4vVBqMOxz8iIIgHY6rbZW5G8H0N2V8GWZOpgoDGpdRupKP8DfXoFlC7PALOj tseExkx/bY6pVJ4ecxi3kNggJHTmMp2waPDgcfUgHLxD9+E+Yah12YWttWb+9pvs1kF0 1l51+R6EpDCuh02QEpf/l7Zf6dK27cOTWO587+rJoBtMnfv7iDsGgyo4Q8we8NciLqL/ RQjw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:to:from :dkim-signature; bh=QX+FsEvGifcGixAdnbG77BIjmGQ/YLV7MjAMpp0GaDo=; fh=Mys3y4MwsHRytUQMpdfGBn3oGRYLcLloxNwkFYMYMmg=; b=rDBKYgSccMaiVmHvAx6a9vmBnM2YWOq/t4hfSMuvjq3tStSZl6NRV42KGi8P/hAAMX JK9YYfVBN4yXYrRM+m+HEO3U6ulVXKx9BqeY+vRkmJLVgN1IlJQehKFK80+Lwbg5OYPS zofsvp1XktYtipvRKw4UG4gL6emIak2UWdc4SFNTbYNOa9/YJTB5Cpx+StArbaLetYFV cXVQQnadqMVWU69hNjZs/fR84SujfsLVCHYHKGpa3xOqMG2ZujjBbGPd2VKVrrLw2Puz ypoz6D4KaYW2xiEwXpPCbYvguq7WVb0uh2WRBXLs6pOPTTW3hzIZt8S7VmDajLJOaR4n iyuQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=BlmzgJjU; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-nfs+bounces-3729-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-nfs+bounces-3729-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id 6a1803df08f44-6b2a5b8dc42si6809086d6.599.2024.06.12.22.07.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jun 2024 22:07:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs+bounces-3729-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=BlmzgJjU; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-nfs+bounces-3729-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-nfs+bounces-3729-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id C12D01C2271D for ; Thu, 13 Jun 2024 05:07:07 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 910DE132104; Thu, 13 Jun 2024 05:07:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BlmzgJjU" X-Original-To: linux-nfs@vger.kernel.org Received: from mail-yb1-f182.google.com (mail-yb1-f182.google.com [209.85.219.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 08B757E1 for ; Thu, 13 Jun 2024 05:07:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718255226; cv=none; b=YJfdTkSX0//SNeknce4P5ZS9eXFDnwmyARhfzXx0R06+15GmQ2Me7CfXQHj01wNRlQBIX0ax6zYlEjePyM5WazZ1XelZCw2/Quy/34LilH71ZLyqTBT5ae7al4ojBH45Gr5eDxxhJypoq7stFYC5ERFd3Mlm4V32zm0JcbAhXqc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718255226; c=relaxed/simple; bh=SKpP9OXc9bIdGhPw2zDlBaJ00M0ktLILUWuZe+bc2qI=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=CkRN1LCiAfs6e7ct8GFcAjOAS6KiyWNDxJy44QR/6wYfB1Lt9WLNx427UNjCViWfyotvcgbSr374JurdIVLkYPDYpcQIN02I54RlLlKTejWM7Na9Vp2ffKICUCX7KWPGVox9BrnIN5BpQOCPhszb7Jf0f1GCExgVvUlO300xQZI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BlmzgJjU; arc=none smtp.client-ip=209.85.219.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-yb1-f182.google.com with SMTP id 3f1490d57ef6-dff06b3f413so184980276.3 for ; Wed, 12 Jun 2024 22:07:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718255223; x=1718860023; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=QX+FsEvGifcGixAdnbG77BIjmGQ/YLV7MjAMpp0GaDo=; b=BlmzgJjUxj0qomVKgxBhWLQcEOIWrE2JOrxsfibVa2NH/6hJWIemJytQFhssvhghel uyrFrMC8eCc8Gfz5JcxTRZ7uWZtAyLh8aOwJUtHlJ0QJXo5/bFORAYwBfiqPT78cCDlz W8J8mpPnSGboRRmWCjnXy+nE4rEPiVDvmi+OIqjJjPayJHfUxy0Gm3wrW+SdDrRE7DlF hbckh0CVELXZ6MVM36YB8nZFU3YAS67QBv42coqiEz83nOlU1ZaoWtE1/04BjS4vaitN Kil7wjnXfTzO+6MaNu80Nd9abM1NNw0U33Bm1fIAhzPvGSzX7hV2FfDjFUyYI/VlHLkh d97A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718255223; x=1718860023; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=QX+FsEvGifcGixAdnbG77BIjmGQ/YLV7MjAMpp0GaDo=; b=ry8VDaLHkMJT1HR+x/X0bERR4irVKlzGDHIU5QirY5c7nEcxUybFidzNHZzE3uay7K jJekZP2j87lMNuFwCUab2T1kFxvP1nO5mnNC/5dmfBnaPCOS7agEPkIJQsrnmSZSrbDY D5rdPYd5r/vKTV1Z0wir/1q41BXAPvoqQPM/xnuec38qHulBzM4yAA+PYu748L/gmDRC eB0W714k6wr4ZAGm4NXJYAKSJRbnnGyJh8P7eRxdWhmp4Oyt4EWt6y3TW5XU5RVmyiSj G+6/I7LuWVsPdFEy/VVB5qNoScPAyx4cqTzOo6zpQZYbqVM7hlUL9AB1qHbCpGNe5RNd t6Gg== X-Gm-Message-State: AOJu0Yxv1FINnEJpY9lWJ3NKlweymJm6rldMzl9cZI/V8gISOTs2+Rjj YrMdpgHJMORWzslV9/cTh/7wz34gLwrRXUVb7edDlmT/wJB+M/CkoxTu X-Received: by 2002:a25:aa70:0:b0:dfe:e98:be37 with SMTP id 3f1490d57ef6-dfe68435fd7mr4068037276.42.1718255223451; Wed, 12 Jun 2024 22:07:03 -0700 (PDT) Received: from leira.trondhjem.org (c-68-40-188-158.hsd1.mi.comcast.net. [68.40.188.158]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6b2a5ed4527sm3079036d6.101.2024.06.12.22.07.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jun 2024 22:07:03 -0700 (PDT) From: trondmy@gmail.com X-Google-Original-From: trond.myklebust@hammerspace.com To: linux-nfs@vger.kernel.org Subject: [PATCH 00/11] LAYOUTRETURN on reboot Date: Thu, 13 Jun 2024 01:00:44 -0400 Message-ID: <20240613050055.854323-1-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.45.2 Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Trond Myklebust Now that https://datatracker.ietf.org/doc/draft-ietf-nfsv4-layrec/ is mostly done with the review process, I'd like to move the final patches for the client implementation upstream. The following patch series therefore adds support to the flexfiles pNFS driver so that if a metadata server reboot occurs while a client has layouts outstanding, and is performing I/O, then the client will report layoutstats and layout errors through a LAYOUTRETURN during the grace period, after the metadata server comes back up. This has implications for mirrored workloads, since it allows the client to report exactly which mirror data instances may have been corrupted due to the presence of errors during WRITEs or COMMITs. Trond Myklebust (11): NFSv4/pnfs: Remove redundant list check NFSv4.1: constify the stateid argument in nfs41_test_stateid() NFSv4: Clean up encode_nfs4_stateid() pNFS: Add a flag argument to pnfs_destroy_layouts_byclid() NFSv4/pnfs: Add support for the PNFS_LAYOUT_FILE_BULK_RETURN flag NFSv4/pNFS: Add a helper to defer failed layoutreturn calls NFSv4/pNFS: Handle server reboots in pnfs_poc_release() NFSv4/pNFS: Retry the layout return later in case of a timeout or reboot NFSv4/pnfs: Give nfs4_proc_layoutreturn() a flags argument NFSv4/pNFS: Remove redundant call to unhash the layout NFSv4/pNFS: Do layout state recovery upon reboot fs/nfs/callback_proc.c | 5 +- fs/nfs/flexfilelayout/flexfilelayout.c | 2 +- fs/nfs/nfs4_fs.h | 3 +- fs/nfs/nfs4proc.c | 53 ++++-- fs/nfs/nfs4state.c | 4 +- fs/nfs/nfs4xdr.c | 7 +- fs/nfs/pnfs.c | 223 +++++++++++++++++++------ fs/nfs/pnfs.h | 30 +++- include/linux/nfs_fs_sb.h | 1 + include/linux/nfs_xdr.h | 2 +- 10 files changed, 249 insertions(+), 81 deletions(-) -- 2.45.2