[Samba] Does samba support fsync() a directory?

曹树烽 caosf.fnst at cn.fujitsu.com
Fri Feb 2 13:05:44 UTC 2018


Hi, Jeremy:

 >  Can you show us the wireshark trace and the smbd logs
Sorry that I don't known how to use wireshark now.

I have the ptrace log:
```
execve("/home/fujitsu/a.out", ["/home/fujitsu/a.out"], [/* 22 vars */]) = 0
brk(0)                                  = 0x8ce000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7f27a257d000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or 
directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=73077, ...}) = 0
mmap(NULL, 73077, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f27a256b000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\34\2\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2116736, ...}) = 0
mmap(NULL, 3932672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 
0) = 0x7f27a1f9e000
mprotect(0x7f27a2154000, 2097152, PROT_NONE) = 0
mmap(0x7f27a2354000, 24576, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b6000) = 0x7f27a2354000
mmap(0x7f27a235a000, 16896, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f27a235a000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7f27a256a000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7f27a2568000
arch_prctl(ARCH_SET_FS, 0x7f27a2568740) = 0
mprotect(0x7f27a2354000, 16384, PROT_READ) = 0
mprotect(0x600000, 4096, PROT_READ)     = 0
mprotect(0x7f27a257e000, 4096, PROT_READ) = 0
munmap(0x7f27a256b000, 73077)           = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7f27a257c000
write(1, "open aaa\n", 9open aaa
)               = 9
open("aaa", O_RDONLY|O_DIRECTORY)       = 3
write(1, "sync aaa\n", 9sync aaa
)               = 9
fsync(3)                                = -1 EINVAL (Invalid argument)
dup(2)                                  = 4
fcntl(4, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
brk(0)                                  = 0x8ce000
brk(0x8ef000)                           = 0x8ef000
brk(0)                                  = 0x8ef000
fstat(4, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7f27a257b000
write(4, "sync aaa: Invalid argument\n", 27sync aaa: Invalid argument
) = 27
close(4)                                = 0
munmap(0x7f27a257b000, 4096)            = 0
write(1, "OK\n", 3OK
)                     = 3
exit_group(0)                           = ?
+++ exited with 0 +++
```

Best Regards
Cao

在 2018年02月02日 20:54, Jeremy Allison 写道:
> On Fri, Feb 02, 2018 at 08:34:29PM +0800, 曹树烽 via samba wrote:
>> Hi group:
>>      I need some help!
>>      I use samba 4.5.8
>>      And I mount a samba directory from CentOS 7.
>>
>>      When I run such program in the mounted directory:
>> ```
>>
>> #include  <stdlib.h>
>> #include  <stdio.h>
>> #include  <errno.h>
>> #include  <fcntl.h>
>> #include  <string.h>
>> int  main()  {
>> 	printf("open aaa\n");
>>   	int  fd  =  open("aaa",  O_RDONLY  |  O_DIRECTORY,  0);
>>   	if  (fd  <  0)  {
>>   	perror("open aaa");
>>    	}
>>    	printf("sync aaa\n");
>>    	if(fsync(fd))  {
>>    	perror("sync aaa");
>>    	}
>>    	printf("OK\n");
>>    	return  0;
>> }
>>
>> ```
>> 	I get such error: `sync aaa: Invalid argument`
>> 	Is this expected for samba?
>> 	Thanks in advance!
> Can you show us the wireshark trace and the smbd logs
> from this please ?
>
>
>






More information about the samba mailing list