<feed xmlns='http://www.w3.org/2005/Atom'>
<title>samba.git/source3/modules/vfs_ceph.c, branch talloc-2.4.4</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/'/>
<entry>
<title>vfs_ceph: Handle the special case of UTIME_NOW</title>
<updated>2025-06-30T13:15:37+00:00</updated>
<author>
<name>Anoop C S</name>
<email>anoopcs@samba.org</email>
</author>
<published>2025-06-14T09:24:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=a9aa159c7b9d49e92fe43ed037b638d957e192fd'/>
<id>a9aa159c7b9d49e92fe43ed037b638d957e192fd</id>
<content type='text'>
As per utimensat(2)[1]:
. . .
If the tv_nsec field of one of the timespec structures has the special
value UTIME_NOW, then the corresponding file timestamp is set to the
current time.
. . .

Instead of utimes() or futimes() we make use of ceph_setattrx() with
appropriate mask to update timsestamps. It is also important to note
that ceph_setattrx() does not handle timestamps in pairs of timespec
structs. This had a shortcoming that the special consideration for the
magic value UTIME_NOW was left unattended resulting in epoch timestamps.
Therefore we reset those timestamps where UTIME_NOW is set in tv_nsec
with the current time.

[1] https://www.man7.org/linux/man-pages/man2/utimensat.2.html

Signed-off-by: Anoop C S &lt;anoopcs@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As per utimensat(2)[1]:
. . .
If the tv_nsec field of one of the timespec structures has the special
value UTIME_NOW, then the corresponding file timestamp is set to the
current time.
. . .

Instead of utimes() or futimes() we make use of ceph_setattrx() with
appropriate mask to update timsestamps. It is also important to note
that ceph_setattrx() does not handle timestamps in pairs of timespec
structs. This had a shortcoming that the special consideration for the
magic value UTIME_NOW was left unattended resulting in epoch timestamps.
Therefore we reset those timestamps where UTIME_NOW is set in tv_nsec
with the current time.

[1] https://www.man7.org/linux/man-pages/man2/utimensat.2.html

Signed-off-by: Anoop C S &lt;anoopcs@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>vfs_ceph: Add ctime processing to SMB_VFS_FNTIMES</title>
<updated>2025-06-30T13:15:37+00:00</updated>
<author>
<name>Anoop C S</name>
<email>anoopcs@samba.org</email>
</author>
<published>2025-06-14T08:59:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=639646be35c78596777e5d842d14d17457874701'/>
<id>639646be35c78596777e5d842d14d17457874701</id>
<content type='text'>
ctime was only missing from the list of timestamps processed for various
checks.

Signed-off-by: Anoop C S &lt;anoopcs@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ctime was only missing from the list of timestamps processed for various
checks.

Signed-off-by: Anoop C S &lt;anoopcs@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>vfs: Allow WITH_BACKUP_INTENT in vfs openat functions</title>
<updated>2025-02-13T08:41:35+00:00</updated>
<author>
<name>Volker Lendecke</name>
<email>vl@samba.org</email>
</author>
<published>2025-01-23T12:42:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=21ca7a4af3e06e219a72b08ffe7916df6b7432c8'/>
<id>21ca7a4af3e06e219a72b08ffe7916df6b7432c8</id>
<content type='text'>
BACKUP_INTENT has no real meaning so far throughout our code, so we
should ignore and thus allow it in our openat-intercepting functions.

Signed-off-by: Volker Lendecke &lt;vl@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
BACKUP_INTENT has no real meaning so far throughout our code, so we
should ignore and thus allow it in our openat-intercepting functions.

Signed-off-by: Volker Lendecke &lt;vl@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vfs_ceph: Retrieve fs capabilties using vfs_get_fs_capabilities</title>
<updated>2024-10-07T12:25:30+00:00</updated>
<author>
<name>Anoop C S</name>
<email>anoopcs@samba.org</email>
</author>
<published>2024-09-17T18:20:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=44e4e1eade5cadea9bd93fde8293ab6eb26230cc'/>
<id>44e4e1eade5cadea9bd93fde8293ab6eb26230cc</id>
<content type='text'>
vfs_ceph is supposed to be the last entry when listed with other vfs
modules. This is due to the fact that the connection path is not local
to the server but relative to the virtual remote file system beneath
it. Especially SMB_VFS_FS_CAPABILITIES implementation from vfs_default
is likely to return incorrect results based on the connection path
assumed to be local to the server which might not be the case with
ceph module stacked. Therefore it doesn't make sense to pass through
any vfs interface implementations further down the line to vfs_default.

Instead make use of get_fs_capabilties to start with already known fs
capabilties from connect phase.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15716

Signed-off-by: Anoop C S &lt;anoopcs@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
vfs_ceph is supposed to be the last entry when listed with other vfs
modules. This is due to the fact that the connection path is not local
to the server but relative to the virtual remote file system beneath
it. Especially SMB_VFS_FS_CAPABILITIES implementation from vfs_default
is likely to return incorrect results based on the connection path
assumed to be local to the server which might not be the case with
ceph module stacked. Therefore it doesn't make sense to pass through
any vfs interface implementations further down the line to vfs_default.

Instead make use of get_fs_capabilties to start with already known fs
capabilties from connect phase.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15716

Signed-off-by: Anoop C S &lt;anoopcs@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vfs_ceph: Populate fs capabilities within cephwrap_statvfs</title>
<updated>2024-10-07T12:25:30+00:00</updated>
<author>
<name>Anoop C S</name>
<email>anoopcs@samba.org</email>
</author>
<published>2024-09-23T09:25:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=0d922d06a71ad647791cd93194c5591033fc4b4b'/>
<id>0d922d06a71ad647791cd93194c5591033fc4b4b</id>
<content type='text'>
SMB_VFS_STATVFS implementation for vfs_ceph failed to fill in the
FsCapabilities field for vfs_statvfs_struct. Insert the minimum
required values for defining the capabilties of a ceph file system.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15716

Signed-off-by: Anoop C S &lt;anoopcs@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
SMB_VFS_STATVFS implementation for vfs_ceph failed to fill in the
FsCapabilities field for vfs_statvfs_struct. Insert the minimum
required values for defining the capabilties of a ceph file system.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15716

Signed-off-by: Anoop C S &lt;anoopcs@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>s3:vfs: add vfs_rename_how to SMB_VFS_RENAMEAT()</title>
<updated>2024-08-21T08:02:30+00:00</updated>
<author>
<name>Stefan Metzmacher</name>
<email>metze@samba.org</email>
</author>
<published>2024-08-06T11:21:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=5b305d1fbb2778f8c8dd2873e79f28a27d8ce581'/>
<id>5b305d1fbb2778f8c8dd2873e79f28a27d8ce581</id>
<content type='text'>
This will support renameat2-like operations in future.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15693

Signed-off-by: Stefan Metzmacher &lt;metze@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This will support renameat2-like operations in future.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15693

Signed-off-by: Stefan Metzmacher &lt;metze@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>smbd: consolidate fs capabilities code in vfswrap_fs_capabilities()</title>
<updated>2024-08-20T05:41:32+00:00</updated>
<author>
<name>Ralph Boehme</name>
<email>slow@samba.org</email>
</author>
<published>2024-06-06T13:38:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=deeca8ff176e7e9082cc0fcf48d7f981de2523c5'/>
<id>deeca8ff176e7e9082cc0fcf48d7f981de2523c5</id>
<content type='text'>
This ensures the values we return via SMB_FS_ATTRIBUTE_INFORMATION is the same
we use internally via conn-&gt;fs_capabilities.

This deliberately preserves existing behaviour as much as possible and leaves
possible improvements as a future excercize. Particularily FILE_VOLUME_QUOTAS is
already set insided SMB_VFS_STATVFS() depending on backend filesystem flags
which is probably the correct way to do it instead of just setting the
capability when Samba was built with quota support.

Signed-off-by: Ralph Boehme &lt;slow@samba.org&gt;
Reviewed-by: David Disseldorp &lt;ddiss@samba.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This ensures the values we return via SMB_FS_ATTRIBUTE_INFORMATION is the same
we use internally via conn-&gt;fs_capabilities.

This deliberately preserves existing behaviour as much as possible and leaves
possible improvements as a future excercize. Particularily FILE_VOLUME_QUOTAS is
already set insided SMB_VFS_STATVFS() depending on backend filesystem flags
which is probably the correct way to do it instead of just setting the
capability when Samba was built with quota support.

Signed-off-by: Ralph Boehme &lt;slow@samba.org&gt;
Reviewed-by: David Disseldorp &lt;ddiss@samba.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vfs_ceph{_new}: do not set errno upon successful call to libcephfs</title>
<updated>2024-08-07T13:02:34+00:00</updated>
<author>
<name>Shachar Sharon</name>
<email>ssharon@redhat.com</email>
</author>
<published>2024-07-30T06:55:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=a7f4e2bd47c7f4728f3ac8d90af693156a69c557'/>
<id>a7f4e2bd47c7f4728f3ac8d90af693156a69c557</id>
<content type='text'>
There is code in Samba that expects errno from a previous system call
to be preserved through a subsequent system call. Thus, avoid setting
"errno = 0" in status_code() and lstatus_code() upon successful return
from libcephfs API call.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15686

Signed-off-by: Shachar Sharon &lt;ssharon@redhat.com&gt;
Reviewed-by: Guenther Deschner &lt;gd@samba.org&gt;
Reviewed-by: Anoop C S &lt;anoopcs@samba.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is code in Samba that expects errno from a previous system call
to be preserved through a subsequent system call. Thus, avoid setting
"errno = 0" in status_code() and lstatus_code() upon successful return
from libcephfs API call.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15686

Signed-off-by: Shachar Sharon &lt;ssharon@redhat.com&gt;
Reviewed-by: Guenther Deschner &lt;gd@samba.org&gt;
Reviewed-by: Anoop C S &lt;anoopcs@samba.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vfs_ceph: Disable the module on unsupported Ceph versions</title>
<updated>2024-07-09T13:05:47+00:00</updated>
<author>
<name>Anoop C S</name>
<email>anoopcs@samba.org</email>
</author>
<published>2024-07-08T07:24:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=ef0068cd2cbb41494eda6592b94219d2e083548e'/>
<id>ef0068cd2cbb41494eda6592b94219d2e083548e</id>
<content type='text'>
For the last major release(v4.20) we had a warning issued(fe16ae1fe834)
to inform about the plan to disable building vfs_ceph in the absence of
certain required APIs. This is now due to make the changes and further
disable building the module if minimum required libcephfs APIs are not
present. As we speak this requirement includes ceph_select_filesystem()
and *at() variants of libcephfs APIs. These were around since v17(even
earlier for ceph_select_filesystem) which is the lowest non-EOL version
of Ceph available[1] at the moment.

[1] https://docs.ceph.com/en/latest/releases/#ceph-releases-index

Signed-off-by: Anoop C S &lt;anoopcs@samba.org&gt;
Reviewed-by: David Disseldorp &lt;ddiss@samba.org&gt;

Autobuild-User(master): Anoop C S &lt;anoopcs@samba.org&gt;
Autobuild-Date(master): Tue Jul  9 13:05:47 UTC 2024 on atb-devel-224
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For the last major release(v4.20) we had a warning issued(fe16ae1fe834)
to inform about the plan to disable building vfs_ceph in the absence of
certain required APIs. This is now due to make the changes and further
disable building the module if minimum required libcephfs APIs are not
present. As we speak this requirement includes ceph_select_filesystem()
and *at() variants of libcephfs APIs. These were around since v17(even
earlier for ceph_select_filesystem) which is the lowest non-EOL version
of Ceph available[1] at the moment.

[1] https://docs.ceph.com/en/latest/releases/#ceph-releases-index

Signed-off-by: Anoop C S &lt;anoopcs@samba.org&gt;
Reviewed-by: David Disseldorp &lt;ddiss@samba.org&gt;

Autobuild-User(master): Anoop C S &lt;anoopcs@samba.org&gt;
Autobuild-Date(master): Tue Jul  9 13:05:47 UTC 2024 on atb-devel-224
</pre>
</div>
</content>
</entry>
<entry>
<title>vfs_ceph: use consistent code style when setting errno</title>
<updated>2024-06-27T06:35:19+00:00</updated>
<author>
<name>Shachar Sharon</name>
<email>ssharon@redhat.com</email>
</author>
<published>2024-05-28T09:36:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=2d743185e0c6e848f1aaf0395ea8824ac5381086'/>
<id>2d743185e0c6e848f1aaf0395ea8824ac5381086</id>
<content type='text'>
When setting explicit value to 'errno' use same coding-style as used in
this entire module (spaces before and after assignment operator).

Signed-off-by: Shachar Sharon &lt;ssharon@redhat.com&gt;
Reviewed-by: Andrew Bartlett &lt;abartlet@samba.org&gt;
Reviewed-by: David Disseldorp &lt;ddiss@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;
Reviewed-by: Guenther Deschner &lt;gd@samba.org&gt;
Reviewed-by: Anoop C S &lt;anoopcs@samba.org&gt;

Autobuild-User(master): Anoop C S &lt;anoopcs@samba.org&gt;
Autobuild-Date(master): Thu Jun 27 06:35:19 UTC 2024 on atb-devel-224
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When setting explicit value to 'errno' use same coding-style as used in
this entire module (spaces before and after assignment operator).

Signed-off-by: Shachar Sharon &lt;ssharon@redhat.com&gt;
Reviewed-by: Andrew Bartlett &lt;abartlet@samba.org&gt;
Reviewed-by: David Disseldorp &lt;ddiss@samba.org&gt;
Reviewed-by: Ralph Boehme &lt;slow@samba.org&gt;
Reviewed-by: Guenther Deschner &lt;gd@samba.org&gt;
Reviewed-by: Anoop C S &lt;anoopcs@samba.org&gt;

Autobuild-User(master): Anoop C S &lt;anoopcs@samba.org&gt;
Autobuild-Date(master): Thu Jun 27 06:35:19 UTC 2024 on atb-devel-224
</pre>
</div>
</content>
</entry>
</feed>
