From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (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 D7B9715E8B for ; Wed, 26 Aug 2026 07:41:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787730085; cv=none; b=qncWCccwnvlHtnWfey4p1S85ltCkvDW3Ky3xNFSAi8/0JfWiYgDgpk5RggMXFot2KoK8cFTipxRbTz5Q+6B1aF3JIEgUjsUMgOvmnUF8Ugs/ts+5nS0zD4JTYG9ISk2wdaUEan5c7k8Fp3nP5RYBi2w8aQl/1mshKeX/2Fp0CNM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787730085; c=relaxed/simple; bh=lUg+v3pVExMvPWlNVA6ydnUMAXs3XmsQJXaVLsrsWgI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=FGjS2Lk9XOwUMA4OMdVx90Ey1SIm4E/lIbJJlNokuwOqzq3UiqBkffy1Xd+szXE0b9Rp9TL0AFEg02DkIw1oGw24JHhiSeT+oU73TPQyReEhA9Cj6x7OevEg8gxUgT2IcuioXPfqla9jozIk/f8Mi7rhu6QFXB2RfhVvoNJDZLY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id EE6CE1F80F; Wed, 26 Aug 2026 07:41:21 +0000 (UTC) Authentication-Results: smtp-out2.suse.de; none Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 48D1513533; Wed, 26 Aug 2026 07:41:20 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id k8EhC6CYjmoqAwAAD6G6ig (envelope-from ); Wed, 26 Aug 2026 07:41:20 +0000 Date: Wed, 26 Aug 2026 09:41:14 +0200 From: Petr Vorel To: Namjae Jeon Cc: Cyril Hrubis , Jan Polensky , ltp@lists.linux.it, linux-kernel@vger.kernel.org, regressions@lists.linux.dev, Andrea Cervesato , Sungjong Seo , Yuezhang Mo , Christoph Hellwig , "Darrick J . Wong" Subject: Re: [LTP] [PATCH v1 1/1] swap: Add exfat to filesystems requiring tst_fill_file Message-ID: <20260826074114.GA32334@pevik> Reply-To: Petr Vorel References: <6a463902.41a38e5f.27f5bd.337a@mx.google.com> <20260825112755.GA62429@pevik> <20260825132604.GA70046@pevik> Precedence: bulk X-Mailing-List: regressions@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 50.00]; REPLY(-4.00)[] X-Rspamd-Queue-Id: EE6CE1F80F X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spam-Flag: NO X-Spam-Score: -4.00 X-Spam-Level: X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action Hi Namjae, > On Tue, Aug 25, 2026 at 10:46 PM Cyril Hrubis wrote: > > Hi! > Hi Cyril, Petr, > > > > That does not make much sense, if swap_activate was added to kernel, > > > > pre-filling the fallocated file shouldn't be needed anymore. > > > Good catch, you're right. I'm also confused, before v7.2 swap worked on exfat, > > > now even with 82a81a7352bc ("exfat: add iomap buffered I/O support") [2] > > > and your fix 03a43677ca91 ("exfat: add swap_activate support") [3] is not > > > working. Obviously the fix was not good enough. > > There were two bugs I suppose, one is that fallocate() support for exfat broke > > the swapon on fallocated file. The second bug was introduced later when > > exfat was rewritten to use iomap. The iomap case was fixed in the patch > > above, however it looks like the original bug caused by fallocate() > > implementation for exfat is still there. > Can you check if an attached patch improves this issue? > Thanks. LGTM. Tested-by: Petr Vorel Tested on rapido-linux with: CONFIG_EXFAT_FS=y CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" Hopefully Jan will test it as well, built as module. Kind regards, Petr > From 5679a624816454c8e7683842eb0ab3f1adf0dcca Mon Sep 17 00:00:00 2001 > From: Namjae Jeon > Date: Wed, 26 Aug 2026 09:14:14 +0900 > Subject: [PATCH] exfat: map allocated extents for swap activation > exFAT reports allocated ranges beyond valid_size as IOMAP_HOLE when > IOMAP_REPORT is set. iomap_swapfile_activate() also uses IOMAP_REPORT > while collecting physical extents for a swap file, so it treats the > preallocated tail as unallocated and rejects the file with -EINVAL. > Use swap-specific iomap operations that suppress IOMAP_REPORT before > mapping the file. This reports physically allocated ranges as > IOMAP_UNWRITTEN during swap activation without changing the > byte-accurate SEEK_HOLE and SEEK_DATA behavior of the regular iomap > operations. > Fixes: 03a43677ca91 ("exfat: add swap_activate support") > Signed-off-by: Namjae Jeon > --- > fs/exfat/iomap.c | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > diff --git a/fs/exfat/iomap.c b/fs/exfat/iomap.c > index 0c805bf6676a..bf8baf78a9b8 100644 > --- a/fs/exfat/iomap.c > +++ b/fs/exfat/iomap.c > @@ -155,6 +155,22 @@ const struct iomap_ops exfat_iomap_ops = { > .iomap_begin = exfat_iomap_begin, > }; > +static int exfat_swap_iomap_begin(struct inode *inode, loff_t offset, > + loff_t length, unsigned int flags, struct iomap *iomap, > + struct iomap *srcmap) > +{ > + /* > + * Swap activation needs the physical mappings of preallocated > + * ranges. Do not report the VDL tail as a hole. > + */ > + return __exfat_iomap_begin(inode, offset, length, > + flags & ~IOMAP_REPORT, iomap, false); > +} > + > +static const struct iomap_ops exfat_swap_iomap_ops = { > + .iomap_begin = exfat_swap_iomap_begin, > +}; > + > /* > * exfat_write_iomap_end - Update the state after write > * > @@ -274,5 +290,6 @@ const struct iomap_read_ops exfat_iomap_bio_read_ops = { > int exfat_iomap_swap_activate(struct swap_info_struct *sis, > struct file *file, sector_t *span) > { > - return iomap_swapfile_activate(sis, file, span, &exfat_iomap_ops); > + return iomap_swapfile_activate(sis, file, span, > + &exfat_swap_iomap_ops); > } From mboxrd@z Thu Jan 1 00:00:00 1970 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 picard.linux.it (picard.linux.it [213.254.12.146]) (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 9AF98C61DBD for ; Wed, 26 Aug 2026 07:41:43 +0000 (UTC) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id A96323CB858 for ; Wed, 26 Aug 2026 09:41:41 +0200 (CEST) Received: from in-6.smtp.seeweb.it (in-6.smtp.seeweb.it [IPv6:2001:4b78:1:20::6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id E28FA3CA166 for ; Wed, 26 Aug 2026 09:41:24 +0200 (CEST) Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-6.smtp.seeweb.it (Postfix) with ESMTPS id 93E6C1400B8F for ; Wed, 26 Aug 2026 09:41:23 +0200 (CEST) Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id EE6CE1F80F; Wed, 26 Aug 2026 07:41:21 +0000 (UTC) Authentication-Results: smtp-out2.suse.de; none Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 48D1513533; Wed, 26 Aug 2026 07:41:20 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id k8EhC6CYjmoqAwAAD6G6ig (envelope-from ); Wed, 26 Aug 2026 07:41:20 +0000 Date: Wed, 26 Aug 2026 09:41:14 +0200 From: Petr Vorel To: Namjae Jeon Message-ID: <20260826074114.GA32334@pevik> References: <6a463902.41a38e5f.27f5bd.337a@mx.google.com> <20260825112755.GA62429@pevik> <20260825132604.GA70046@pevik> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 50.00]; REPLY(-4.00)[] X-Rspamd-Queue-Id: EE6CE1F80F X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action X-Virus-Scanned: clamav-milter 1.0.9 at in-6.smtp.seeweb.it X-Virus-Status: Clean Subject: Re: [LTP] [PATCH v1 1/1] swap: Add exfat to filesystems requiring tst_fill_file X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Petr Vorel Cc: regressions@lists.linux.dev, Yuezhang Mo , linux-kernel@vger.kernel.org, "Darrick J . Wong" , Sungjong Seo , Christoph Hellwig , ltp@lists.linux.it Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ltp-bounces+ltp=archiver.kernel.org@lists.linux.it Sender: "ltp" SGkgTmFtamFlLAoKPiBPbiBUdWUsIEF1ZyAyNSwgMjAyNiBhdCAxMDo0NuKAr1BNIEN5cmlsIEhy dWJpcyA8Y2hydWJpc0BzdXNlLmN6PiB3cm90ZToKCj4gPiBIaSEKPiBIaSBDeXJpbCwgUGV0ciwK PiA+ID4gPiBUaGF0IGRvZXMgbm90IG1ha2UgbXVjaCBzZW5zZSwgaWYgc3dhcF9hY3RpdmF0ZSB3 YXMgYWRkZWQgdG8ga2VybmVsLAo+ID4gPiA+IHByZS1maWxsaW5nIHRoZSBmYWxsb2NhdGVkIGZp bGUgc2hvdWxkbid0IGJlIG5lZWRlZCBhbnltb3JlLgoKPiA+ID4gR29vZCBjYXRjaCwgeW91J3Jl IHJpZ2h0LiBJJ20gYWxzbyBjb25mdXNlZCwgYmVmb3JlIHY3LjIgc3dhcCB3b3JrZWQgb24gZXhm YXQsCj4gPiA+IG5vdyBldmVuIHdpdGggODJhODFhNzM1MmJjICgiZXhmYXQ6IGFkZCBpb21hcCBi dWZmZXJlZCBJL08gc3VwcG9ydCIpIFsyXQo+ID4gPiBhbmQgeW91ciBmaXggMDNhNDM2NzdjYTkx ICgiZXhmYXQ6IGFkZCBzd2FwX2FjdGl2YXRlIHN1cHBvcnQiKSBbM10gaXMgbm90Cj4gPiA+IHdv cmtpbmcuIE9idmlvdXNseSB0aGUgZml4IHdhcyBub3QgZ29vZCBlbm91Z2guCgo+ID4gVGhlcmUg d2VyZSB0d28gYnVncyBJIHN1cHBvc2UsIG9uZSBpcyB0aGF0IGZhbGxvY2F0ZSgpIHN1cHBvcnQg Zm9yIGV4ZmF0IGJyb2tlCj4gPiB0aGUgc3dhcG9uIG9uIGZhbGxvY2F0ZWQgZmlsZS4gVGhlIHNl Y29uZCBidWcgd2FzIGludHJvZHVjZWQgbGF0ZXIgd2hlbgo+ID4gZXhmYXQgd2FzIHJld3JpdHRl biB0byB1c2UgaW9tYXAuIFRoZSBpb21hcCBjYXNlIHdhcyBmaXhlZCBpbiB0aGUgcGF0Y2gKPiA+ IGFib3ZlLCBob3dldmVyIGl0IGxvb2tzIGxpa2UgdGhlIG9yaWdpbmFsIGJ1ZyBjYXVzZWQgYnkg ZmFsbG9jYXRlKCkKPiA+IGltcGxlbWVudGF0aW9uIGZvciBleGZhdCBpcyBzdGlsbCB0aGVyZS4K PiBDYW4geW91IGNoZWNrIGlmIGFuIGF0dGFjaGVkIHBhdGNoIGltcHJvdmVzIHRoaXMgaXNzdWU/ Cj4gVGhhbmtzLgoKTEdUTS4KClRlc3RlZC1ieTogUGV0ciBWb3JlbCA8cHZvcmVsQHN1c2UuY3o+ CgpUZXN0ZWQgb24gcmFwaWRvLWxpbnV4IHdpdGg6CkNPTkZJR19FWEZBVF9GUz15CkNPTkZJR19F WEZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0idXRmOCIKCkhvcGVmdWxseSBKYW4gd2lsbCB0ZXN0IGl0 IGFzIHdlbGwsIGJ1aWx0IGFzIG1vZHVsZS4KCktpbmQgcmVnYXJkcywKUGV0cgoKPiBGcm9tIDU2 NzlhNjI0ODE2NDU0YzhlNzY4Mzg0MmViMGFiM2YxYWRmMGRjY2EgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCj4gRnJvbTogTmFtamFlIEplb24gPGxpbmtpbmplb25Aa2VybmVsLm9yZz4KPiBEYXRl OiBXZWQsIDI2IEF1ZyAyMDI2IDA5OjE0OjE0ICswOTAwCj4gU3ViamVjdDogW1BBVENIXSBleGZh dDogbWFwIGFsbG9jYXRlZCBleHRlbnRzIGZvciBzd2FwIGFjdGl2YXRpb24KCj4gZXhGQVQgcmVw b3J0cyBhbGxvY2F0ZWQgcmFuZ2VzIGJleW9uZCB2YWxpZF9zaXplIGFzIElPTUFQX0hPTEUgd2hl bgo+IElPTUFQX1JFUE9SVCBpcyBzZXQuIGlvbWFwX3N3YXBmaWxlX2FjdGl2YXRlKCkgYWxzbyB1 c2VzIElPTUFQX1JFUE9SVAo+IHdoaWxlIGNvbGxlY3RpbmcgcGh5c2ljYWwgZXh0ZW50cyBmb3Ig YSBzd2FwIGZpbGUsIHNvIGl0IHRyZWF0cyB0aGUKPiBwcmVhbGxvY2F0ZWQgdGFpbCBhcyB1bmFs bG9jYXRlZCBhbmQgcmVqZWN0cyB0aGUgZmlsZSB3aXRoIC1FSU5WQUwuCgo+IFVzZSBzd2FwLXNw ZWNpZmljIGlvbWFwIG9wZXJhdGlvbnMgdGhhdCBzdXBwcmVzcyBJT01BUF9SRVBPUlQgYmVmb3Jl Cj4gbWFwcGluZyB0aGUgZmlsZS4gVGhpcyByZXBvcnRzIHBoeXNpY2FsbHkgYWxsb2NhdGVkIHJh bmdlcyBhcwo+IElPTUFQX1VOV1JJVFRFTiBkdXJpbmcgc3dhcCBhY3RpdmF0aW9uIHdpdGhvdXQg Y2hhbmdpbmcgdGhlCj4gYnl0ZS1hY2N1cmF0ZSBTRUVLX0hPTEUgYW5kIFNFRUtfREFUQSBiZWhh dmlvciBvZiB0aGUgcmVndWxhciBpb21hcAo+IG9wZXJhdGlvbnMuCgo+IEZpeGVzOiAwM2E0MzY3 N2NhOTEgKCJleGZhdDogYWRkIHN3YXBfYWN0aXZhdGUgc3VwcG9ydCIpCj4gU2lnbmVkLW9mZi1i eTogTmFtamFlIEplb24gPGxpbmtpbmplb25Aa2VybmVsLm9yZz4KPiAtLS0KPiAgZnMvZXhmYXQv aW9tYXAuYyB8IDE5ICsrKysrKysrKysrKysrKysrKy0KPiAgMSBmaWxlIGNoYW5nZWQsIDE4IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCj4gZGlmZiAtLWdpdCBhL2ZzL2V4ZmF0L2lvbWFw LmMgYi9mcy9leGZhdC9pb21hcC5jCj4gaW5kZXggMGM4MDViZjY2NzZhLi5iZjhiYWY3OGE5Yjgg MTAwNjQ0Cj4gLS0tIGEvZnMvZXhmYXQvaW9tYXAuYwo+ICsrKyBiL2ZzL2V4ZmF0L2lvbWFwLmMK PiBAQCAtMTU1LDYgKzE1NSwyMiBAQCBjb25zdCBzdHJ1Y3QgaW9tYXBfb3BzIGV4ZmF0X2lvbWFw X29wcyA9IHsKPiAgCS5pb21hcF9iZWdpbiA9IGV4ZmF0X2lvbWFwX2JlZ2luLAo+ICB9OwoKPiAr c3RhdGljIGludCBleGZhdF9zd2FwX2lvbWFwX2JlZ2luKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxv ZmZfdCBvZmZzZXQsCj4gKwkJbG9mZl90IGxlbmd0aCwgdW5zaWduZWQgaW50IGZsYWdzLCBzdHJ1 Y3QgaW9tYXAgKmlvbWFwLAo+ICsJCXN0cnVjdCBpb21hcCAqc3JjbWFwKQo+ICt7Cj4gKwkvKgo+ ICsJICogU3dhcCBhY3RpdmF0aW9uIG5lZWRzIHRoZSBwaHlzaWNhbCBtYXBwaW5ncyBvZiBwcmVh bGxvY2F0ZWQKPiArCSAqIHJhbmdlcy4gRG8gbm90IHJlcG9ydCB0aGUgVkRMIHRhaWwgYXMgYSBo b2xlLgo+ICsJICovCj4gKwlyZXR1cm4gX19leGZhdF9pb21hcF9iZWdpbihpbm9kZSwgb2Zmc2V0 LCBsZW5ndGgsCj4gKwkJCWZsYWdzICYgfklPTUFQX1JFUE9SVCwgaW9tYXAsIGZhbHNlKTsKPiAr fQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfc3dhcF9pb21hcF9v cHMgPSB7Cj4gKwkuaW9tYXBfYmVnaW4gPSBleGZhdF9zd2FwX2lvbWFwX2JlZ2luLAo+ICt9Owo+ ICsKPiAgLyoKPiAgICogZXhmYXRfd3JpdGVfaW9tYXBfZW5kIC0gVXBkYXRlIHRoZSBzdGF0ZSBh ZnRlciB3cml0ZQo+ICAgKgo+IEBAIC0yNzQsNSArMjkwLDYgQEAgY29uc3Qgc3RydWN0IGlvbWFw X3JlYWRfb3BzIGV4ZmF0X2lvbWFwX2Jpb19yZWFkX29wcyA9IHsKPiAgaW50IGV4ZmF0X2lvbWFw X3N3YXBfYWN0aXZhdGUoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpcywKPiAgCQkJICAgICAg IHN0cnVjdCBmaWxlICpmaWxlLCBzZWN0b3JfdCAqc3BhbikKPiAgewo+IC0JcmV0dXJuIGlvbWFw X3N3YXBmaWxlX2FjdGl2YXRlKHNpcywgZmlsZSwgc3BhbiwgJmV4ZmF0X2lvbWFwX29wcyk7Cj4g KwlyZXR1cm4gaW9tYXBfc3dhcGZpbGVfYWN0aXZhdGUoc2lzLCBmaWxlLCBzcGFuLAo+ICsJCQkJ ICAgICAgICZleGZhdF9zd2FwX2lvbWFwX29wcyk7Cj4gIH0KCi0tIApNYWlsaW5nIGxpc3QgaW5m bzogaHR0cHM6Ly9saXN0cy5saW51eC5pdC9saXN0aW5mby9sdHAK