[HEADS-UP] Using stored immutable file birth time for SMB File-ID

Ralph Boehme slow at samba.org
Mon Jul 1 08:08:20 UTC 2019


On 6/27/19 4:38 PM, Ralph Boehme via samba-technical wrote:
> Hi David,
> 
> On 6/27/19 4:21 PM, David Disseldorp wrote:
>> Hi Ralph,
>>
>> Another follow-up here, after looking at your patchset...
>>
>> On Wed, 26 Jun 2019 15:57:46 +0200, Ralph Boehme via samba-technical wrote:
>>
>>> As a file's creation time (or btime for birth-time) may be set by clients, this 
>>> would result in changed File-IDs every time a client sets the btime. So we need 
>>> to store an additional copy of a file's original btime. We store the btime as 
>>> part of the DOS attributes xattr, we need an additional field in there, making 
>>> for a new level 4 of the xattr info struct.
>>
>> IIUC, Btrfs, XFS, ext4 and f2fs already expose an *immutable* btime via
>> statx. See the discussion in https://patchwork.kernel.org/cover/10812257
> 
> thanks for bringing this up. These are interesting times... in the end
> the kernel may pick up our user.DOSATTRIB... :)
> 
>> I'd also imagine that there are FSes out there that can offer their own
>> immutable never-recycled File-ID.
> 
> Yes, HFS+, APFS, NTFS. :) Others?
> 
>> Ideally your patchset could cater to both cases by allowing for
>> make_file_index_from_btime() / update_stat_ex_file_index() calls in the
>> VFS stat handler
> 
> yes, that will work.
> 
>> and avoiding the extra dosmode games if the
>> st_ex_file_index is already set.
> 
> oh, good point, I have to fix that. :)
> 
>> As a minor nit, I think it'd make sense to combine the new stat_ex bools
>> into a single flags entry which includes calculated[_original]_birthtime
>> etc.
> 
> Yeah, maybe, I'll take a look.

proposed patchset for merge available via gitlab CI at

<https://gitlab.com/samba-team/samba/merge_requests/589>

...and as attachment.

-slow

-- 
Ralph Boehme, Samba Team                https://samba.org/
Samba Developer, SerNet GmbH   https://sernet.de/en/samba/
GPG-Fingerprint   FAE2C6088A24252051C559E4AA1E9B7126399E46
-------------- next part --------------
A non-text attachment was scrubbed...
Name: master-fileid.patch
Type: text/x-patch
Size: 74495 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20190701/0dee0822/master-fileid.bin>


More information about the samba-technical mailing list