Cover Letter Detail
Show a cover letter.
GET /api/1.2/covers/2220007/?format=api
{ "id": 2220007, "url": "http://patchwork.ozlabs.org/api/1.2/covers/2220007/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/cover/20260405195007.1306-1-DefendTheDisabled@gmail.com/", "project": { "id": 8, "url": "http://patchwork.ozlabs.org/api/1.2/projects/8/?format=api", "name": "Linux ext4 filesystem development", "link_name": "linux-ext4", "list_id": "linux-ext4.vger.kernel.org", "list_email": "linux-ext4@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260405195007.1306-1-DefendTheDisabled@gmail.com>", "list_archive_url": null, "date": "2026-04-05T19:49:56", "name": "[RFC,v1,0/6] provenance_time (ptime): a new settable timestamp for cross-filesystem provenance", "submitter": { "id": 93064, "url": "http://patchwork.ozlabs.org/api/1.2/people/93064/?format=api", "name": "Sean Smith", "email": "defendthedisabled@gmail.com" }, "mbox": "http://patchwork.ozlabs.org/project/linux-ext4/cover/20260405195007.1306-1-DefendTheDisabled@gmail.com/mbox/", "series": [ { "id": 498804, "url": "http://patchwork.ozlabs.org/api/1.2/series/498804/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/list/?series=498804", "date": "2026-04-05T19:49:56", "name": "provenance_time (ptime): a new settable timestamp for cross-filesystem provenance", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/498804/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/2220007/comments/", "headers": { "Return-Path": "\n <SRS0=9V0h=CE=vger.kernel.org=linux-ext4+bounces-15642-patchwork-incoming=ozlabs.org@ozlabs.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-ext4@vger.kernel.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "patchwork-incoming@ozlabs.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=Y2CnWMUz;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=9v0h=ce=vger.kernel.org=linux-ext4+bounces-15642-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)", "gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=172.232.135.74 arc.chain=subspace.kernel.org", "gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com", "gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=Y2CnWMUz;\n\tdkim-atps=neutral", "gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.232.135.74; helo=sto.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15642-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"Y2CnWMUz\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.167.178", "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com" ], "Received": [ "from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fpjk91JlTz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 06 Apr 2026 05:50:41 +1000 (AEST)", "from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fpjk31cxnz4wCm\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 06 Apr 2026 05:50:35 +1000 (AEST)", "by gandalf.ozlabs.org (Postfix)\n\tid 4fpjk31XJhz4wF0; Mon, 06 Apr 2026 05:50:35 +1000 (AEST)", "from sto.lore.kernel.org (sto.lore.kernel.org [172.232.135.74])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fpjjz1jrwz4wCm\n\tfor <patchwork-incoming@ozlabs.org>; Mon, 06 Apr 2026 05:50:31 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id C74263001FF6\n\tfor <patchwork-incoming@ozlabs.org>; Sun, 5 Apr 2026 19:50:28 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id E955B381AEA;\n\tSun, 5 Apr 2026 19:50:25 +0000 (UTC)", "from mail-oi1-f178.google.com (mail-oi1-f178.google.com\n [209.85.167.178])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 59C92372ED2\n\tfor <linux-ext4@vger.kernel.org>; Sun, 5 Apr 2026 19:50:24 +0000 (UTC)", "by mail-oi1-f178.google.com with SMTP id\n 5614622812f47-47018d341f8so1158376b6e.3\n for <linux-ext4@vger.kernel.org>;\n Sun, 05 Apr 2026 12:50:24 -0700 (PDT)", "from localhost.localdomain (c-73-5-99-191.hsd1.la.comcast.net.\n [73.5.99.191])\n by smtp.gmail.com with ESMTPSA id\n 5614622812f47-46f46160155sm4547428b6e.17.2026.04.05.12.50.20\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sun, 05 Apr 2026 12:50:21 -0700 (PDT)" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1775418635; cv=pass;\n\tb=MF6Bvo80FLkOOMb5MKXH0xCePS2Vqmqgq6HVsi9noN/7XBg4p4GWx+uKThksd1JX1RjhfL2vxw9l/2l2A46+8uPNzRW+DfHnCsCmVBj+wwLzFyT239vGB1QbDo78IW6DcJ0dpLgO3wWK17SlihhfG9rtme8Y0b2RZGi9tlRdE/nSJrkMVFgRnzmOU+Y0iBSxXw0R/e1XvNQ9aBG+FiXsYjhmPM9NlyePA8wA+rua9dzXKSA+UK7L8pgpukBa03gkcGGYrTFDeAEF5nPIprXC5Y4kX0h2cpbwa1Xp4GREDrW8onJ6PZKtR3YXNElaTA4M5PKFAs6DeXz2W1dNBXxzmw==", "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775418625; cv=none;\n b=DuF4GeSFIGs+cC0fyDpb9smBJ0Tc14u2wJopVzx/7oQ1M2tscpfuDLiRijWdJLOFu6wbh2LyW5qsDtjzJc9MFO/hzUU5yqTonzhmCvRPWdw7sSQoyfQONPPCWceIslb58lbIl2gQWI2+8z45VggtZHp4jjN7+QMiQy9v2WWLtmc=" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1775418635; c=relaxed/relaxed;\n\tbh=y/Z3NqYghOFgX7NQJkYe62ulZHnLEHQdOk5LkLv1xhc=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=L2Iy6oXdRK2EWCbGrV8GigxXdB12qtLRgnsLybcHjDEh2eMrOwnbmRAi3EQ6EWjlBMO44Eb4e2/Jo09fwNqrcBKNxEsg6ww8G629JYTSfEhjGANAFagHWAjKe6z2tHmbHiTgniHHp3aGzPhKtO8t9/+F/FxJD2IwQIjh5SS1y6xJ2EQDigBkqEyLtfeZXO4xw+y19/8HN78Pe/Jgpp+dujH1YtwjZLgJoW/XFL0kZmhFNAmDf23uoPxR/h67OPa5pJd0CTNA/FfqNSB+xF7aPH9En8FTJ/a8WN4pOIXzi2hBfi7TMyBE8aOBsn3aAF8QIJaUXiZ3jsPs4GIbw+CEvQ==", "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775418625; c=relaxed/simple;\n\tbh=2HpA9a7YpMsG6RzQeS6NPv0xbOy+YIj0lAohp10XXe8=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=XN+qSi4b2UlK+VgitJz5HFGFnr3JXAgXkuwtSyIKExWIP3TobSiWFeqeC7CCnGCZsBOYZyHuHvFo8ZPI5OpJPtU23w7AGn9gH5soJgCSJDdihcqApskOINtMKfr+ce+m/IrFQFUcDEsiWc0EBDS9YDT+XRpBRKGv3wvS1/MBlbg=" ], "ARC-Authentication-Results": [ "i=2; gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com; dkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=Y2CnWMUz; dkim-atps=neutral;\n spf=pass (client-ip=172.232.135.74; helo=sto.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15642-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org", "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=Y2CnWMUz; arc=none smtp.client-ip=209.85.167.178" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775418623; x=1776023423;\n darn=vger.kernel.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=y/Z3NqYghOFgX7NQJkYe62ulZHnLEHQdOk5LkLv1xhc=;\n b=Y2CnWMUz4w4zMlm9x6ciVxO8joSA7xE31SJz8acNidGeY5dZFXKH12Wf6MNFq4ODL9\n TPnIsixU7uNY8QSLUX904sjn6uJowghtBSkzy4mxsn/IFElFKxC1WwDYxiWWOMPIRhQW\n lMctjeEH5Y+N67Ix9lN4sBqtIwH82Pr/Qwa133fm7pm5i/o+RFvuxHDG7cYJyVpID3aC\n IJksWAX8rvgcMUVPhhrSSAQqz6QAJ7wJrcgl6XsEdjGq40DUx7pOol1AlAFHxklc2PAw\n r4RNyCbxwT2M8DlA9WYFHo6BjHQBbsX0+zmEGtcUPBLI8UDnx0wASdI7kyHcevJc1EMy\n dK3Q==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775418623; x=1776023423;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=y/Z3NqYghOFgX7NQJkYe62ulZHnLEHQdOk5LkLv1xhc=;\n b=g8+e2eZ5/D0lP68RseKsd7Dch6vlTqT7Pa5lkwIb5NXubQTC+nL56VkMMsdLQ8qIWP\n 31sht4BcWctOfYwbYy8klYtDgPd4EFC241wjDLw7T8MjpRyzv2M5EFxFv681tuZLLWNQ\n Cxw6V45PeOzYtKEBu9BG1v18p3UN8t/3FK4tz2Z2pLHrBIf9Fai9mxYw/63FSl7piIMX\n u8s8TUqkl7/9y8Qtqw1lTKFyp9XltPIjJQVa23WFO/SIjw9dODG5V5ZTgIuGEW0MsTPP\n fxjx0aXIJIKi1puKSZMFutE7BTjZwOGveV7c1i2gYKrRQizDtfHyQm4Tr2MbRonPofhK\n 0VJA==", "X-Gm-Message-State": "AOJu0Yzd+S3ae6RKFTMxVKR30Om9SV/6MyS9eVEm/Zx7+sBhVUc3D7yt\n\tKuwRe8NlLbI2KiUggrIxB9FwAJFS1c2i4PLd/L+eYKfI50IgFDs01HSt", "X-Gm-Gg": "AeBDiesZBUqCPfJdByQ63STk84NdKWOjYyh+J1lQiEeO57S9eHLijsx2nGy8J1NM1dd\n\ttFGFAAdA/p3drBB4vELyg0gvRTEWgTCLNKpuetEm6sbSVbv4utcvf36HX+InmI23YwjULSMApZh\n\t6OJu12mXznJxAWArzzJkU30ffnK5OYQd0FCL1R/9obzCmy2SwNLvgs4JLMmAJS2iqOv51NR6MWJ\n\tiZXYxxBIGCv3zrcMwJesAeBlB/xGGfJmNhhnxgpm5hiU2Zhi8XV2oDxuKWIv3VSU4kNMLQMmEIj\n\tDESGmYF+Ilx7mAubJpJzf0olS+CDOQNkeCfxoVzqrO87ChX9rgkCNDtcgjGBWcBOAarQ8+AzQwv\n\to8hmbjAl6I/EJc7S70x0yf2UrArrAwSAOoE7EX1fa+x7orrNnABFS1u1znPWL/XqVuJ3ZD7XcNx\n\t379FcXz1YVs7230SC641SfBrJD9nJ9lHczfOIs/VjHQKjcBE97nnOwuuXIYnsb1uRPeW1qzeazG\n\tcex2JVMbGyjH2+xE4vQEBzgXg==", "X-Received": "by 2002:a05:6808:c298:b0:46a:c98c:bfe9 with SMTP id\n 5614622812f47-46efbbe9a45mr5481201b6e.40.1775418623283;\n Sun, 05 Apr 2026 12:50:23 -0700 (PDT)", "From": "Sean Smith <defendthedisabled@gmail.com>", "X-Google-Original-From": "Sean Smith <DefendTheDisabled@gmail.com>", "To": "linux-fsdevel@vger.kernel.org", "Cc": "linux-ext4@vger.kernel.org,\n\tlinux-btrfs@vger.kernel.org,\n\ttytso@mit.edu,\n\tdsterba@suse.com,\n\tdavid@fromorbit.com,\n\tbrauner@kernel.org,\n\tosandov@osandov.com,\n\talmaz@kernel.org,\n\thirofumi@mail.parknet.co.jp,\n\tlinkinjeon@kernel.org,\n\tSean Smith <DefendTheDisabled@gmail.com>", "Subject": "[RFC PATCH v1 0/6] provenance_time (ptime): a new settable timestamp\n for cross-filesystem provenance", "Date": "Sun, 5 Apr 2026 14:49:56 -0500", "Message-ID": "<20260405195007.1306-1-DefendTheDisabled@gmail.com>", "X-Mailer": "git-send-email 2.51.0.windows.1", "Precedence": "bulk", "X-Mailing-List": "linux-ext4@vger.kernel.org", "List-Id": "<linux-ext4.vger.kernel.org>", "List-Subscribe": "<mailto:linux-ext4+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-ext4+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Spam-Status": "No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tFREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1", "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org" }, "content": "This series adds provenance_time (ptime) -- a new settable inode\ntimestamp that records when a file's content was first created,\npreserving this date across copies, moves, and application saves.\n\nThis is a working implementation of the concept I proposed in my\nRFC in March:\n https://lore.kernel.org/linux-fsdevel/CAOx6djP4hb-Cd1Zk07SNfFfLc8irjNmbVqq+58h1Whz+h1wSFA@mail.gmail.com/T/#u\n\nMOTIVATION\n\nLinux has no mechanism to preserve original creation dates when\nfiles move between filesystems. Every copy resets btime to \"now.\"\nFor workflows involving document migration (NTFS to Btrfs, between\next4 volumes, to USB drives), creation date provenance is lost.\n\nSince the March RFC, I attempted an xattr-based workaround\n(user.provenance_time) and found it structurally unworkable:\n\n 1. Application atomic saves destroy xattrs. Programs that save\n via write-to-temp + rename() replace the inode, permanently\n destroying all extended attributes. Only the VFS sees both\n inodes during rename -- no userspace mechanism can intercept\n this and copy metadata across.\n\n 2. Every tool in the copy chain must explicitly opt in to xattr\n preservation. cp requires --preserve=xattr, rsync requires -X,\n tar requires --xattrs. Each missing flag causes silent data\n loss. Transparent preservation through arbitrary tool flows\n is not achievable in userspace.\n\nAtomic saves are the default behavior of mainstream applications\n(LibreOffice, Vim, Kate, etc.).\n\nDESIGN\n\nptime is a separate timestamp from btime. btime remains immutable\nand forensic (\"when was this inode born on this disk\"). ptime is\nsettable and portable (\"when was this content first created\").\n\nThis resolves the 2019 impasse: Dave Chinner's forensic argument\nfor immutable btime is fully respected -- btime is untouched on\nnative Linux filesystems. Ted Ts'o's March 2025 concept of a\nsettable \"crtime\" alongside immutable btime is implemented in ext4\nwith dedicated i_ptime fields.\n\nTwo implementation categories:\n\n Native (Btrfs, ext4): Dedicated on-disk ptime field. btime\n remains immutable. Full nanosecond precision.\n\n Mapped (ntfs3, FAT32/vfat, exFAT): ptime reads/writes the\n existing creation time field. This matches Windows and macOS\n behavior, where creation time is already settable via standard\n APIs. No new on-disk structures needed.\n\nKey VFS capability -- rename-over preservation: when rename()\noverwrites an existing file, the kernel copies ptime from the\nold file to the new file. This fixes the atomic-save xattr\ndestruction problem at its root, for every application on\nevery supported filesystem.\n\nAPI\n\nptime is exposed through existing interfaces with minimal\nadditions:\n\n - statx: STATX_PTIME (0x00040000U) returns ptime in stx_ptime\n - utimensat: AT_UTIME_PTIME (0x20000) flag with times[2]\n extension for setting ptime\n - setattr_prepare: ATTR_PTIME (bit 19) / ATTR_PTIME_SET (bit 20)\n\nThe utimensat extension reuses Sandoval's 2019 pattern. For\nupstream, an extensible-struct syscall (utimensat2, following\nthe clone3/openat2 convention) may be preferred -- I am open\nto guidance on the API design.\n\nPermissions follow the existing utimensat model: file owner\nor CAP_FOWNER required.\n\nTESTING\n\nThis has been running on EndeavourOS (kernel 6.19.11) for daily\nuse. Test coverage:\n\n - 10 xfstests (7 generic VFS + 3 Btrfs-specific): basic\n set/read, persistence, rename-over, permissions, utime-omit,\n chmod/truncate survival, snapshots, nlink guards, compat_ro\n\n - Runtime tests across all 5 filesystems: set/read, rename-over,\n cp -a preservation, cross-FS copies (Btrfs, ext4, ntfs3,\n FAT32, exFAT)\n\nKNOWN LIMITATIONS\n\n - XFS: deferred (separate inode structure analysis needed)\n - Btrfs send/receive: not yet patched for ptime\n - glibc utimensat() wrapper: cannot pass ptime; tools use raw\n syscall()\n - Btrfs compat_ro: writing ptime sets a compat_ro flag;\n unpatched kernels refuse RW mount (correct Btrfs behavior)\n\nThe userspace ecosystem (patched cp, rsync, tar, KDE Dolphin)\nand xfstests are available at:\n https://github.com/DefendTheDisabled/linux-ptime\n\nThis implementation was developed using AI-assisted tooling for\ncode generation, iterative review, and test infrastructure. I am\nresponsible for review, testing, and sign-off.\n\nSean Smith (6):\n vfs: add provenance_time (ptime) infrastructure\n btrfs: add provenance time (ptime) support\n ntfs3: map ptime to NTFS creation time with rename-over\n ext4: add dedicated ptime field alongside i_crtime\n fat: map ptime to FAT creation time with rename-over\n exfat: map ptime to exFAT creation time with rename-over\n\n fs/attr.c | 6 +++-\n fs/btrfs/btrfs_inode.h | 4 +++\n fs/btrfs/delayed-inode.c | 4 +++\n fs/btrfs/fs.h | 3 +-\n fs/btrfs/inode.c | 43 +++++++++++++++++++++++++\n fs/btrfs/tree-log.c | 2 ++\n fs/btrfs/volumes.c | 2 +-\n fs/exfat/file.c | 9 ++++++\n fs/exfat/namei.c | 21 +++++++++++--\n fs/ext4/ext4.h | 3 ++\n fs/ext4/inode.c | 14 +++++++++\n fs/ext4/namei.c | 13 ++++++++\n fs/fat/file.c | 6 ++++\n fs/fat/namei_vfat.c | 20 ++++++++++--\n fs/init.c | 2 +-\n fs/ntfs3/file.c | 13 ++++++++\n fs/ntfs3/frecord.c | 8 +++++\n fs/ntfs3/namei.c | 14 +++++++++\n fs/stat.c | 2 ++\n fs/utimes.c | 56 +++++++++++++++++++++++++--------\n include/linux/fs.h | 5 ++-\n include/linux/stat.h | 1 +\n include/uapi/linux/btrfs.h | 1 +\n include/uapi/linux/btrfs_tree.h | 4 ++-\n include/uapi/linux/fcntl.h | 3 ++\n include/uapi/linux/stat.h | 4 ++-\n init/initramfs.c | 2 +-\n 27 files changed, 239 insertions(+), 26 deletions(-)" }