Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp1028770ybb; Wed, 8 Apr 2020 15:00:59 -0700 (PDT) X-Google-Smtp-Source: APiQypLnfwFFoCK0+J0gcoeJowNNfqCPgG1re5etpzykQY+WfdaUmU2ot7/DNPNe8bOIc9eifbCl X-Received: by 2002:a05:6830:23ba:: with SMTP id m26mr7329569ots.133.1586383259440; Wed, 08 Apr 2020 15:00:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586383259; cv=none; d=google.com; s=arc-20160816; b=tc04s8LAJKaBEZ8O/FlcHsclFeT04eczVaZiEYoxxN2UqaMfTwjN5ri7IZf2nGvr+1 8/hu9q2U6ojhg+otDZrVm+f9NPObfpKnrVvuLKBJaEszECruROR4gZ3Y6mM+/MYwbHyZ vP3Ow9Q6CiHuugUER3Hps+/eKVVX+Hx8NwTdt0dHd40PF++4Pdd8DInrE09hYXlK8FQp KUFLg7KwPQF0xiCjzFcjneEhDVkuyeqlIeUtH8Z6imzWDx2IdULgr8cOSD9XwK+BCojv cotlkW8hp8a49t/ndx5t0kBHJCp/GTUAPR7ctxtFzwAR4QKG3L1eCe+8tIJ99e27OZq9 UMRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6c2L16Ujn3w/lMWA3ilafaxiWdDboTeYgqDIA6qCREs=; b=vQEGJOVUT0sVEpw4G7W01e+gn5p//cE4SzgDgBqq6UI5Cgr0XEY8on6WFbuJ+8UKPq b244SpiqRymU+D7s0EcQBYgeqfCiNMdLZwePCHwJEn0/mrRPCpb17fVlgLu0UQtQ/Tvj l3aqVepRD2MdnXRRjKWDXzBbQBRuvOc38pSNTj5+xga3WQkPcUGQCcl/QWwhQuGyUthI TVbrXFo92YDex0Z6o8Pk33xMc74Qkeym7CpRFKbhNzq40/WaNqTk0sTp9sOlmMfpw1Vc 37G9JTiIUn4ngyruI4nQl01f1kSVyKJ9AJjvESK4mrGTYoMAJaG+7EEJNXc64YVL0X2t 8zgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Gt5rbZdn; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k3si2489767oib.82.2020.04.08.15.00.47; Wed, 08 Apr 2020 15:00:59 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Gt5rbZdn; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726755AbgDHVz4 (ORCPT + 99 others); Wed, 8 Apr 2020 17:55:56 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:38838 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726725AbgDHVzy (ORCPT ); Wed, 8 Apr 2020 17:55:54 -0400 Received: by mail-pf1-f194.google.com with SMTP id c21so3077449pfo.5 for ; Wed, 08 Apr 2020 14:55:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6c2L16Ujn3w/lMWA3ilafaxiWdDboTeYgqDIA6qCREs=; b=Gt5rbZdntMswGmqfECpMJid05gBHuMHWxD1VUaPztneu7hNfsbFF/lRX61har3IxeT 7x+A4f7FopiG6XqW5PFvmh0qUAFY6KEsAbYtWgQbdETbyoL3+URepNKDsRqLmdHvOT4g bpg8WHE0BXuSu5J4PCHT6i2/aOcMYj847daZuPHmompFj/aPkG4TMUBoR8Mb5sHuwYXG RT+o2oSuG+CYk5HvZe5SOmIclCzhR5BfeFlL5U/ohulwwm5v8zI8zlFNC1hfHea0ruCF HifDa5KAJx8/TrsZ0qxh78zLxX1T3rfAtnxsAyx6pRWJQEubj260gcRYHrfjcEhPa0Ff yq6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6c2L16Ujn3w/lMWA3ilafaxiWdDboTeYgqDIA6qCREs=; b=izFlU1foo+mUCv6cSB3AKWy6aEc2sqf0KTQRYHxp2uS5LcHrvzF6mpNP3zarMYEWAI efGOL4oxDNI25+HiHinkpsRf2ijwtc+LuKLVII1qyGdXKuR7W2mnIa99+zXeMQPkNbo6 zlaADsOKoJys3uXsRE2gxrFsV7gMqzSD9hggLjLsATO4g635bWo/8yzZIiT2J74hOXVR kghgpJMsGcEiWQOm8sjPYvmNFC2VgReCQtX3Kry1K2+HTufbufbPLuT68ys8+K+pOUSM X/K8gaVjdBr+M7Y4T6qJLIwRceQDzMZnXDVbglIY2rYg8OotcMzlqG0aRBU9rFIFrY0m w07g== X-Gm-Message-State: AGi0PubOQKdbng3VeIp31/rZNcIu5x0SFX+EpCoAVHd0xTZGPFdePt7z lnF2m1wnVKWJUZa8WzTUpomuaWgv X-Received: by 2002:a63:717:: with SMTP id 23mr9217407pgh.61.1586382953105; Wed, 08 Apr 2020 14:55:53 -0700 (PDT) Received: from harshads-520.kir.corp.google.com ([2620:15c:17:10:6271:607:aca0:b6f7]) by smtp.googlemail.com with ESMTPSA id z7sm450929pju.37.2020.04.08.14.55.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Apr 2020 14:55:52 -0700 (PDT) From: Harshad Shirwadkar X-Google-Original-From: Harshad Shirwadkar To: linux-ext4@vger.kernel.org Cc: tytso@mit.edu, Harshad Shirwadkar Subject: [PATCH v6 12/20] ext4: add fast commit on-disk format structs Date: Wed, 8 Apr 2020 14:55:22 -0700 Message-Id: <20200408215530.25649-12-harshads@google.com> X-Mailer: git-send-email 2.26.0.110.g2183baf09c-goog In-Reply-To: <20200408215530.25649-1-harshads@google.com> References: <20200408215530.25649-1-harshads@google.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Harshad Shirwadkar Add structs representing on-disk format of the commit header and tlvs in the commit header. Signed-off-by: Harshad Shirwadkar --- fs/ext4/ext4_jbd2.c | 1 + fs/ext4/ext4_jbd2.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c index 4bef01f9814a..fca478a3b7e9 100644 --- a/fs/ext4/ext4_jbd2.c +++ b/fs/ext4/ext4_jbd2.c @@ -4,6 +4,7 @@ */ #include "ext4_jbd2.h" +#include "ext4_extents.h" #include diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h index b1239d6be713..b8ac3f29949d 100644 --- a/fs/ext4/ext4_jbd2.h +++ b/fs/ext4/ext4_jbd2.h @@ -529,7 +529,52 @@ static inline int ext4_should_dioread_nolock(struct inode *inode) return 1; } +/* Ext4 fast commit related info */ + +/* Magic of fast commit header */ +#define EXT4_FC_MAGIC 0xE2540090 + #define EXT4_NUM_FC_BLKS 128 + +struct ext4_fc_commit_hdr { + /* Fast commit magic, should be EXT4_FC_MAGIC */ + __le32 fc_magic; + /* Features used by this fast commit block */ + __u8 fc_features; + /* Number of TLVs in this fast commmit block */ + __le16 fc_num_tlvs; + /* Inode number */ + __le32 fc_ino; + /* Csum(hdr+contents) */ + __le32 fc_csum; +}; + +/* Fast commit on disk tag length structure */ +struct ext4_fc_tl { + __le16 fc_tag; + __le16 fc_len; +}; + +/* On disk fast commit tlv value structure for dirent tags: + * - EXT4_FC_TAG_CREATE_DENTRY + * - EXT4_FC_TAG_ADD_DENTRY + * - EXT4_FC_TAG_DEL_DENTRY + */ +struct ext4_fc_dentry_info { + __le32 fc_parent_ino; + __le32 fc_ino; + u8 fc_dname[0]; +}; + +/* + * On disk fast commit tlv value structure for tag + * EXT4_FC_TAG_HOLE. + */ +struct ext4_fc_lrange { + __le32 fc_lblk; + __le32 fc_len; +}; + void ext4_init_fast_commit(struct super_block *sb, journal_t *journal); void ext4_init_inode_fc_info(struct inode *inode); void ext4_fc_track_range(struct inode *inode, ext4_lblk_t start, -- 2.26.0.110.g2183baf09c-goog