No subject


Tue Dec 2 03:01:20 GMT 2003


the target
partition any more. After removing ACL support from Samba, the copy
process
succeeds and the strace output looks like:
open("touchpad.exe", O_RDWR|O_NONBLOCK|O_CREAT|O_EXCL|O_LARGEFILE, 0744)
= 16
fstat64(16, {st_mode=S_IFREG|0744, st_size=0, ...}) = 0
gettimeofday({987877152, 524404}, NULL) = 0
time(NULL)                              = 987877152
semop(1075276504, 0x40175210, 1)        = 500
write(19, "[2001/04/21 20:19:12, 2] smbd/op"..., 52) = 52
semop(1075276504, 0x40175210, 1)        = 500
write(19, "  hasch opened file touchpad.exe"..., 64) = 64
shmat(12, 0x65, 0x7)                    = 0x1
shmat(12, 0x27, 0x7)                    = 0
shmat(12, 0x81a0ee0, 0x7)               = 0x2
shmat(16, 0x10, 0xa)                    = ?
shmat(16, 0x10, 0x400)                  = ?
...

I traced this problem down to open_file() in smbd/open.c:
	string_set(&fsp->fsp_name,fname);
	fsp->wbmpx_ptr = NULL;      
	fsp->wcp = NULL; /* Write cache pointer. */
	DEBUG(2,("%s opened file %s read=%s write=%s (numopen=%d)\n",
		 *current_user_info.smb_name ? current_user_info.smb_name :
conn->user,fsp->fsp_name,
		 BOOLSTR(fsp->can_read), BOOLSTR(fsp->can_write),
		 conn->num_files_open + 1)); 
	/*
	 * Take care of inherited ACLs on created files. JRA.
	 */

	if ((flags & O_CREAT) && (conn->vfs_ops.fchmod_acl != NULL)) {
		int saved_errno = errno; /* We might get ENOSYS in the next call.. */
X		if (conn->vfs_ops.fchmod_acl(fsp, fsp->fd, mode) == -1 && errno ==
ENOSYS)
X			errno = saved_errno;  /* Ignore ENOSYS */
	}

If I remove the "X" marked lines, the problems go away. Maybe Jeremy can
give some insight,
in what may go wrong here.

Greetings... Juergen




More information about the samba-technical mailing list