From patchwork Tue Sep 3 08:54:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wu Bo X-Patchwork-Id: 13788287 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 66B84CD3420 for ; Tue, 3 Sep 2024 08:41:18 +0000 (UTC) Received: from [127.0.0.1] (helo=sfs-ml-2.v29.lw.sourceforge.com) by sfs-ml-2.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1slP6D-00085r-UV; Tue, 03 Sep 2024 08:41:17 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-2.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1slP6A-00085R-G3 for linux-f2fs-devel@lists.sourceforge.net; Tue, 03 Sep 2024 08:41:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=MIME-Version:Content-Type:Content-Transfer-Encoding :References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=zpt7hATAjsNzxEZ1b9rWksG+1m8LwfMM2LU47Jz15y0=; b=anesnj0fS9pNQURDLHgX+VAS/y a3SWxdsrtTO59EPOT10PBI+yM35tiysPrptkH5CCWCDOs0850TEGGWmiRDX8DBJlkD4NFRvbnTUDY BsHXYRz0F9QBL0sTZCaD8CNeu1Ewj8RwzMmxtazIAgDcunmLzexkQ39PxOnCQqcu7sdQ=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=MIME-Version:Content-Type:Content-Transfer-Encoding:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=zpt7hATAjsNzxEZ1b9rWksG+1m8LwfMM2LU47Jz15y0=; b=fGPSzwfihj6EJAlGjhQeq1DKE7 tMpgFrngLvppYBwiYNC47zhBF3sjDrfLMu81DZx90F3SYzO5ygqtFCUrJeZsmq7tXChwipmxIyMUp 4BTuRgCpzf/GiZvgrY3JQTMmQ1DwHCLjSJoTonnzJ0l2rUQyxgKv+f456ZI3sQd4Q4ZQ=; Received: from mail-sgaapc01on2060.outbound.protection.outlook.com ([40.107.215.60] helo=APC01-SG2-obe.outbound.protection.outlook.com) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1slP69-0008VM-RH for linux-f2fs-devel@lists.sourceforge.net; Tue, 03 Sep 2024 08:41:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rNMy98Ur5ztuKYbYkrCeQImUel6oCOLQUaCnTpGnUaLJTkFy5pQjUFGu/C/a+nC6kYpCGZNTM7Jeb0h9Emnh8ACMJrk0I54DhjE9k0dP0TZZCXsyTm/EfarxypaSn+KZuF1GM5uUd64htog1cH1uJU5lFoW8Puis638V+IympCZNgvpA0FhKlCBslX+l43+CGWzxNKitlVe20jY91yDaUj9Ho0R1VMkWI7zznoYT5pEM49Kl4Vo1Cu6b22zQBrJd/ji4YmGj3o98korx7yVT7iArFI9xn64qtGCP2cv5OQbMytOdqFVPU1jCpaVlycAWPXA9+aHJedC6A9el1hJQXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zpt7hATAjsNzxEZ1b9rWksG+1m8LwfMM2LU47Jz15y0=; b=YSSdYg9FH7znusin7Afi3+R7wwSHlQF4j0zR9shp5bbKgp7wwZkpAAI5MHahvqc0wex7b4MHt03FUyreUBUMoXzbOoBmQtfwGcAI8sl1TqAMgqNkUtyYJ33/IOXRIXNQ842R4imU4SuisFGqnTpoak3BzR7ole6/v/7v+4sTNSi/GofHU0vFFHJP5pjCtswY6oLSKMfH1BSvVE2aTCLOrOkLkrQ34hyfU4MP9Tf8MGYHtHM6ViN9uDvfDpA22GAOYlRjqOH4o0dcW9cInNEIf7dp6V0uuoKQ6VTXYSFDkZCGGYN/ODo+qrUNGUUBQ1ieg7s6ZxABSzUpz/7jiPjaEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zpt7hATAjsNzxEZ1b9rWksG+1m8LwfMM2LU47Jz15y0=; b=aWz2IRDnstSRiQfC3DLq3mapBl577CvIPNUEeuZQOdtBXQ2/PDM4RvI0ean25T063eJ6RueOXPofPZUjabTAhqcgGSw+N+PT9VE/kAwu5wedEYtaX+ho+arpO2qe9bzBB5FkJSs0fsYDpxIwciSKY6Y4UySpV85V51fwi01khoNuG5m+XR3DbHTQGqqCnvcMVWMZ25XAeqB3jwJQcP/5PG/RIVtvhFLdsSljCsgF00UkdpurHgrjSaasRZoGMwQwU+C0IxI2mImZVkI73hWkvn4g2Fi2e5TrgAVmxeD+FSGXduNon1/ocwJo2sPyJulSRua2A4ygGUv3kNbAJh2DoA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from PSAPR06MB4486.apcprd06.prod.outlook.com (2603:1096:301:89::11) by KL1PR0601MB5536.apcprd06.prod.outlook.com (2603:1096:820:bd::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.24; Tue, 3 Sep 2024 08:40:55 +0000 Received: from PSAPR06MB4486.apcprd06.prod.outlook.com ([fe80::43cb:1332:afef:81e5]) by PSAPR06MB4486.apcprd06.prod.outlook.com ([fe80::43cb:1332:afef:81e5%6]) with mapi id 15.20.7918.024; Tue, 3 Sep 2024 08:40:55 +0000 To: linux-kernel@vger.kernel.org Date: Tue, 3 Sep 2024 02:54:51 -0600 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: X-ClientProxiedBy: SI2PR02CA0008.apcprd02.prod.outlook.com (2603:1096:4:194::12) To PSAPR06MB4486.apcprd06.prod.outlook.com (2603:1096:301:89::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PSAPR06MB4486:EE_|KL1PR0601MB5536:EE_ X-MS-Office365-Filtering-Correlation-Id: da211acf-c9a6-44cd-e705-08dccbf42023 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|52116014|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: kKfi6SD/4Gb1t0CyMHKiqNYCGjzcVOQWAcEuLrAiSfBUSriKH1JXGr16Ye3JkGhHQsSu6hHEYF+2B7Wstm/Om5YsAJ+K8wmdwyNGQNbbyTPFGQMDxE2dYAyvcs5llaUyMjxxjqeuzcmy6tIQJfSdHOXp0BvjbvI8N+vh+dpdDuoaadbeYAzZvF73qXq+aTtAMkUASNnYH6vhXXS4yE7GnU/uljYFljPNvPNf3CTk+yIA9nYZyUorKu4wFDb8rP06DMKPfLKHhuahIkrpN2h++ZD1kURrR2zkp89Fv0J6y9UqpKvQ2N4oyko9Lhq8c8K5ckohUS4ynG+6O3J8AI3dOPRiKxH49rxmQOKwUsEkgyqIyl7yboCARixnBsv9sRHR1VWbVTLDh5qwqLewPCIe05f1xAbDkCIiAyL2zyHdbOx0Jc8hDQ0bgxUr1Z//rfLGldNt1z9pY/uqeC7vXw1PgEO0WraBHWrkbZ2yE4xuSdMcsq0ZhUZZ9pX4MXcAgf8ga+sWQZ4ZrT9axKLueX7iHcVDK0Oo3UEkcx7IqAQTmiBRIr+cuExJN6/dDxR/J1zJbW33uZQM6mYJ51UVouyObrOVWbHtAAp0z0PGTKHV9OaOcpOd7gkjJZpkuWK0L6CttKwq1HwegKgqfE9PFzDz9pnblDQAa6jJZHY0Qa6bjsUCIPkbZ3NvqEAHt/cmp7XMD35tYIy3qwo2TAnK5XhUjbr9VjrDwlOYZ+twbfdI0YCcb7O4yZVbsd9qc0KmE++8XlN2IkMYD/0JEGpX7m1LSXfq/+E9E59Mv6F6BE/Ymfpzou0TtN2OO6A2KnHHqU2EjaesmLzmMWEAGvQZgRtGb9rRtIOuwWBFIT9gsBPHh0gYcK8agbxltMly02TH6tUQxgZxTpzgECueVYoIDcNsNzgyZcdA0A9RmO69IYVOwyn0by+AJ7O4GgTeRdolAQALb+mqdAjhVIFNNRC12hvsiKLGks7kTHoDkxh3N+tIeIRUcJhsIsAl3IovJr6uDh6IZQBrNj6mozOYGMjsX7IXQ+oo4AylWN0CgHk/ggnayCdvGpizxt0LWTJgNfskB92g7fuuLPihzx6zh73ph2dr2uqWtDSOO0LZwa0uWslaIgIiqSjANHjLb1QhGI85lsqlrWcIpxCqdm2ZkW1NumD4FWpvIXNCLS1MBirA0KutkaVM4603Ud9YsygqoyQHNPRRCfUdS35hamdgnqMuCZiJifXN5vKsjMvNBOO/PaUkFO6D6GhtiINJJahrEO0a6ZMx4xEMg8pBOXFcRgqnWSBa17JpqrieW17keVKt6nuEUfoQ6wNn4cKbl3WeDTCQtkBfQILlJZc8RsUuRV3WCeQct0h8Jswb8f6j5DPINV6ZrEsa2tlC2/MlYXYmWiO9AvwwHLvovuYuj83o58G0NGqvKA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PSAPR06MB4486.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(52116014)(376014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: loSpHskOmpHJ7fUJaPxK0xIC/PnFrzHxRwUjbWThWnkn7bPQxpaMf0XgRTlvo38N3GsUO78IeyzXCCyuF7IxKhEqAbnyESwxW95ICE9XWW//CI7eugGoV4D9JndzRMFfXMMBtzflCL1lO9jGoV0YCBbIlwaiQ82oW2IY0GLz2UBFmifbbIB4DBZ6QFqBp1g7TJFoYffYSVSxsQzBAOOIgvnLVMJs4ezol9lmpCVSITOFEFoFa/cEdNbYJQYGO7X07RsT4h6FYGoUkBLQXdC3T48sCIljUfWR5lxTvdWPGB4u7Z1TFbY4G/2cPR8xF6evDcOA2lx4M7+vj08truM7zk7DizgStc8SYulZRtvyfrmJmYl8Wj0ALgThUhE8X68i9OOCWbAt3GSSeSIIWoMmPzffhq7C2Ppp9fHnnnV6YvMJmRqdsFUFX3r2AyubVSwZqTDuyMM99nHlL/YBJUB5WgayVUxLFTTwIVckhWWneQKewYGCU8+eFe/VMVigv/ympkk73didhoG3UJxLk7XaylpEonhuykqVV2M+kxl92mtUOjmS0uE2/XhlHkcvGyHGpll+r0Jf06RfYm724yVhUf1/BYiKO6gBzDmjchJarpq2ad0TsdQQ6KtumKnmAqr53bhqG8wmLwz2z4K5oB8WnmMFjB4VXLzvNoxcS2PjXk76+DyAFO0GmNOT5rfYDUnUct63efANps65k9mSLYvmVnJxFETAc7fa3kg/O0UPQgsPVRqvez3mYC2fhZ7QrpijFQtdpQQEUOxYtmtMxi+5is/N3ZlYExsVgjCrgr+K0iJgVnY/MNPfsnRkf5og+TAkGAOBQstSe8yY/IB0Vx5YbB6VBwc9nsVjcbAiSMPwU/pMBtiDOFxYXrn9jEwi/lZ4A2azy9vtSHGT5dIEt11l2fid2lKEp94Py4BDmbQOixB17WPE8En/1f+jU+ea3j6ZZNJNIZd/35FmdT400kV2d1VhCO0/dhdEjO8YtWfzJhVQGSGRNyNaO+v/sdN9k5uur4vJ1ceGCgjTShjcRsRhSdDZlyCrkYh0ELsC5XJCE2s/V7tzWRJg2L6+pMqnq2mVw/OMhO7vM9A19426mSRrl9o8EGE5laBQf+c2wbeGRgBpTyJ9txQty06wbrw2xSwNfteD7jn/1NhV77HzaLX0KemsBVWKZhvpWqyvHA+bxXl5P3Z+nxeyaGkJA1HTPm4eYv2F0jSE6UWKgxC5e8v0LU1B9nG8+nm3xQtjinBGYYWDKTsjMufT7rCtdu3IRvREun+C1CPGiOWqPsHviHh3D69ppAh+NLZlDhgc/p2GJpoLMCrRLDq7+6Jsm4V71rVKCOcq+jQtdzSIJ0pGC6WZbghsjI0X56xXtc7T3Uc8sEt7IsYFqmqBg3D8NnqBwC1DYA/xijSaoK00dyk2duSQUKsjVamcRlM3mGdTqppDqx94YYXIRJbuCeO+iFbLkA47LhbVs7RMV+VX3eCztFLlum5wUo19VlVBnDjMLjRa68REp54g8do+9PFtC8WirNfJBvJD3v9CZMNgzjiIs0W5hLCWbXbCkxRN8hp89mQPAT/uP8hBOuD+OjYrXywdPDc9 X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: da211acf-c9a6-44cd-e705-08dccbf42023 X-MS-Exchange-CrossTenant-AuthSource: PSAPR06MB4486.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2024 08:40:55.2816 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 78JUgF+9SK8W+VPdr7Np0qGcRC6hwomxyB805/iEtcRix/5wrGnaenQ9HJoLQgMvEpP9dTAM/gcMkIQyltCx3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0601MB5536 X-Headers-End: 1slP69-0008VM-RH Subject: [f2fs-dev] [PATCH 07/13] f2fs: support seek for inline tail X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Wu Bo via Linux-f2fs-devel From: Wu Bo Reply-To: Wu Bo Cc: Wu Bo , Jaegeuk Kim , Wu Bo , linux-f2fs-devel@lists.sourceforge.net Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net Fix to support seek for inline tail files Signed-off-by: Wu Bo --- fs/f2fs/file.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 957d1ff55350..dda4cf6d7325 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -400,6 +400,7 @@ static bool __found_offset(struct address_space *mapping, block_t blkaddr = f2fs_data_blkaddr(dn); struct inode *inode = mapping->host; bool compressed_cluster = false; + bool inline_tail = false; if (f2fs_compressed_file(inode)) { block_t first_blkaddr = data_blkaddr(dn->inode, dn->node_page, @@ -408,6 +409,14 @@ static bool __found_offset(struct address_space *mapping, compressed_cluster = first_blkaddr == COMPRESS_ADDR; } + if (f2fs_has_inline_tail(inode)) { + loff_t isize = i_size_read(inode); + if ((isize >> PAGE_SHIFT == index) && + (f2fs_exist_data(inode) || + xa_get_mark(&mapping->i_pages, index, PAGECACHE_TAG_DIRTY))) + inline_tail = true; + } + switch (whence) { case SEEK_DATA: if (__is_valid_data_blkaddr(blkaddr)) @@ -417,11 +426,13 @@ static bool __found_offset(struct address_space *mapping, return true; if (compressed_cluster) return true; + if (inline_tail) + return true; break; case SEEK_HOLE: if (compressed_cluster) return false; - if (blkaddr == NULL_ADDR) + if (blkaddr == NULL_ADDR && !inline_tail) return true; break; } @@ -473,6 +484,8 @@ static loff_t f2fs_seek_block(struct file *file, loff_t offset, int whence) } end_offset = ADDRS_PER_PAGE(dn.node_page, inode); + if (f2fs_has_inline_tail(inode)) + end_offset = COMPACT_ADDRS_PER_INODE + 1; /* find data/hole in dnode block */ for (; dn.ofs_in_node < end_offset; @@ -496,6 +509,8 @@ static loff_t f2fs_seek_block(struct file *file, loff_t offset, int whence) } } f2fs_put_dnode(&dn); + if (f2fs_has_inline_tail(inode) && dn.ofs_in_node == end_offset) + goto fail; } if (whence == SEEK_DATA)