The Samba-Bugzilla – Attachment 9001 Details for
Bug 9970
Backport vfs_streams_xattr fixes to 4.0 and 4.1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Backport of 4cd7e1d283 for 4.0
for-4.0-0002-vfs_streams_xattr-Do-not-attempt-to-write-empty-attr.patch (text/plain), 2.90 KB, created by
Christof Schmitt
on 2013-06-26 23:04:39 UTC
(
hide
)
Description:
Backport of 4cd7e1d283 for 4.0
Filename:
MIME Type:
Creator:
Christof Schmitt
Created:
2013-06-26 23:04:39 UTC
Size:
2.90 KB
patch
obsolete
>From 1e96dabb6b541520fc325152e698cd42460773b5 Mon Sep 17 00:00:00 2001 >From: Christof Schmitt <christof.schmitt@us.ibm.com> >Date: Wed, 12 Jun 2013 14:55:15 -0700 >Subject: [PATCH 2/2] vfs_streams_xattr: Do not attempt to write empty attribute twice > >The create disposition FILE_OVERWRITE_IF is mapped to the flags >O_CREAT|O_TRUNC. In vfs_streams_xattr, this triggers two calls to >SMB_VFS_SETXATTR. The second can fail if O_EXCL is also set, resulting >in an unnecessary error. > >Merge the identical code to handle O_CREAT and O_TRUNC to avoid setting >an empty attribute twice. Also add the flags parameter to the debug >message. > >Signed-off-by: Christof Schmitt <christof.schmitt@us.ibm.com> >Reviewed-by: Jeremy Allison <jra@samba.org> >Reviewed-by: Volker Lendecke <vl@samba.org> >(cherry picked from commit 4cd7e1d283f060e794023d5b0a48a7ec97d33820) >--- > source3/modules/vfs_streams_xattr.c | 42 +++++++++------------------------- > 1 files changed, 11 insertions(+), 31 deletions(-) > >diff --git a/source3/modules/vfs_streams_xattr.c b/source3/modules/vfs_streams_xattr.c >index 748af4f..6650021 100644 >--- a/source3/modules/vfs_streams_xattr.c >+++ b/source3/modules/vfs_streams_xattr.c >@@ -367,8 +367,8 @@ static int streams_xattr_open(vfs_handle_struct *handle, > int baseflags; > int hostfd = -1; > >- DEBUG(10, ("streams_xattr_open called for %s\n", >- smb_fname_str_dbg(smb_fname))); >+ DEBUG(10, ("streams_xattr_open called for %s with flags 0x%x\n", >+ smb_fname_str_dbg(smb_fname), flags)); > > if (!is_ntfs_stream_smb_fname(smb_fname)) { > return SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode); >@@ -452,40 +452,20 @@ static int streams_xattr_open(vfs_handle_struct *handle, > goto fail; > } > >- if (!NT_STATUS_IS_OK(status)) { >+ if ((!NT_STATUS_IS_OK(status) && (flags & O_CREAT)) || >+ (flags & O_TRUNC)) { > /* >- * The attribute does not exist >+ * The attribute does not exist or needs to be truncated > */ > >- if (flags & O_CREAT) { >- /* >- * Darn, xattrs need at least 1 byte >- */ >- char null = '\0'; >+ /* >+ * Darn, xattrs need at least 1 byte >+ */ >+ char null = '\0'; > >- DEBUG(10, ("creating attribute %s on file %s\n", >- xattr_name, smb_fname->base_name)); >+ DEBUG(10, ("creating or truncating attribute %s on file %s\n", >+ xattr_name, smb_fname->base_name)); > >- if (fsp->base_fsp->fh->fd != -1) { >- if (SMB_VFS_FSETXATTR( >- fsp->base_fsp, xattr_name, >- &null, sizeof(null), >- flags & O_EXCL ? XATTR_CREATE : 0) == -1) { >- goto fail; >- } >- } else { >- if (SMB_VFS_SETXATTR( >- handle->conn, smb_fname->base_name, >- xattr_name, &null, sizeof(null), >- flags & O_EXCL ? XATTR_CREATE : 0) == -1) { >- goto fail; >- } >- } >- } >- } >- >- if (flags & O_TRUNC) { >- char null = '\0'; > if (fsp->base_fsp->fh->fd != -1) { > if (SMB_VFS_FSETXATTR( > fsp->base_fsp, xattr_name, >-- >1.7.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
vl
:
review+
jra
:
review+
Actions:
View
Attachments on
bug 9970
:
9000
| 9001 |
9002