Strange Problems with XFS ACLs and Samba 2.2

John Trostel jtrostel at connex.com
Fri Apr 20 22:59:23 GMT 2001


I am (trying) to run the new 2.2 samba on an XFS file system with the XFS ACLs
enabled.  The ACLs themselves work but I am having strange troubles with the
files that Samba accepts from my WinNT box.  These troubles may be related to a
few reports I have heard of people either 'running out of inodes' or getting a
'too many open files' error.

The basic problem is that if I delete files from the XFS partition after Samba
has placed them there, the disk usage (df -k) does NOT go down.  Of course "du"
does show the space gone away. The files disappear from the 'ls -l' and 'du'
output but the space is NOT reclaimed.

Here are some relevant points:

1. setup with an XFS formatted parition as the "share"

2. I can ftp files onto the XFS partition from the WinNT box and then delete
them from the either the Linux box or the WinNT with no problem.

3. If the file was placed there by Samba, it doesn't matter whether I try to
delete the file from the Linux side or the WinNT side, the space is not
reclaimed.

4. This problem does not occur if I recompile Samba without the
--with-acl-support option

5. This problem DOES occur EVEN on an ext2 formatted partition if I configure
--with-acl-support

6. The missing space will return if I reboot the machine.

I have attached a 'strace' covering the action of placing a file into the
network-drive share using Samba.  If anyone has any suggestions of things I
might try in addition, or differently.... I'm all ears.


***************strace output***********************

 1620 ?        00:00:00 smbd
 1629 ?        00:00:00 nmbd
 1632 ?        00:00:00 smbd
 1633 pts/0    00:00:00 ps
[root at jtsdell samba]# strace -p 1632
select(19, [12 17 18], NULL, NULL, {47, 430000}) = 1 (in [12], left {36,
350000})
read(12, "\0\0\0R", 4)                  = 4
read(12, "\377SMB2\0\0\0\0\30\3\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\376"..., 82) = 82
gettimeofday({987804926, 815090}, NULL) = 0
semop(1075309212, 0x8173400, 500)       = 500
ipc_subcall(0xffffffff, 0, 0xffffffff, 0x8173400) = 0
semop(1075309212, 0xffffffff, 0)        = 0
semop(1075309212, 0x8173400, 0)         = 0
semget(1075309212, 0, IPC_CREAT|IPC_EXCL|IPC_NOWAIT|0xfffff1ff|0666) = 500
ipc_subcall(0xffffffff, 0, 0xffffffff, 0x8173400) = 0
semget(1075309212, 0, IPC_CREAT|IPC_EXCL|IPC_NOWAIT|0xfffff1ff|0666) = 0
semget(1075309212, 0, IPC_CREAT|IPC_EXCL|IPC_NOWAIT|0xfffff1ff|0666) = 0
ipc_subcall(0x1, 0x8189d80, 0x40118138, 0x8173400) = 0
ipc_subcall(0xffffffff, 0x1f4, 0xffffffff, 0x8173400) = 0
semget(1075309212, 500, IPC_CREAT|IPC_EXCL|IPC_NOWAIT|0xfffff1ff|0666) = 500
ipc_subcall(0xffffffff, 0x1f4, 0xffffffff, 0x8173400) = 0
semop(1075309212, 0xffffffff, 500)      = 500
chdir("/mnt/xfs_part")                  = 0
stat64(0x8179e00, 0xbffff04c)           = 0
send(12, "\0\0\0b\377SMB2\0\0\0\0\210A\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 102, 0) =
102
select(19, [12 17 18], NULL, NULL, {60, 0}) = 1 (in [12], left {59, 950000})
read(12, "\0\0\0F", 4)                  = 4
read(12, "\377SMB2\0\0\0\0\30\3\0U\200\0\0\0\0\0\0\0\0\0\0\1\0 \364"..., 70) =
70
gettimeofday({987804926, 864763}, NULL) = 0
stat64(0x8179e00, 0xbffff930)           = 0
send(12, "\0\0\0N\377SMB2\0\0\0\0\210A\200\0\0\0\0\0\0\0\0\0\0\0"..., 82, 0) =
82
select(19, [12 17 18], NULL, NULL, {60, 0}) = 1 (in [12], left {59, 990000})
read(12, "\0\0\0,", 4)                  = 4
read(12, "\377SMB\20\0\0\0\0\30\3\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\376"..., 44) =
44
gettimeofday({987804926, 871795}, NULL) = 0
stat64(0x8179e00, 0xbffff4e0)           = 0
send(12, "\0\0\0#\377SMB\20\0\0\0\0\210\1\0\0\0\0\0\0\0\0\0\0\0\0"..., 39, 0) =
39
select(19, [12 17 18], NULL, NULL, {60, 0}) = 1 (in [12], left {60, 0})
read(12, "\0\0\0\\", 4)                 = 4
read(12, "\377SMB2\0\0\0\0\30\3\0U\200\0\0\0\0\0\0\0\0\0\0\1\0 \364"..., 92) =
92
gettimeofday({987804926, 877478}, NULL) = 0
stat64(0x8179e00, 0xbffff068)           = 0
stat64(0x8179e00, 0xbffff068)           = -1 ENOENT (No such file or directory)
stat64(0x8179e00, 0xbffff068)           = -1 ENOENT (No such file or directory)
open("Remote", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 20
fstat64(0x14, 0xbfffdea4)               = 0
shmat(20, 0, 0x2ptrace: umoven: Input/output error
)                       = ?
brk(0x81d2000)                          = 0x81d2000
ipc_subcall(0x14, 0x81b5860, 0x10000, 0x2) = 72
ipc_subcall(0x14, 0x81b5860, 0x10000, 0x2) = 0
close(20)                               = 0
open("Remote", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 20
fstat64(0x14, 0xbfffef28)               = 0
shmat(20, 0x81b53b8, 0x2ptrace: umoven: Input/output error
)               = ?
ipc_subcall(0x14, 0x81b7868, 0x10000, 0) = 72
ipc_subcall(0x14, 0x81b7868, 0x10000, 0) = 0
close(20)                               = 0
send(12, "\0\0\0#\377SMB2\1\0\2\0\210A\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 39, 0) =
39
select(19, [12 17 18], NULL, NULL, {60, 0}) = 1 (in [12], left {59, 950000})
read(12, "\0\0\0_", 4)                  = 4
read(12, "\377SMB\242\0\0\0\0\30\3\0U\200\0\0\0\0\0\0\0\0\0\0\1\0"..., 95) = 95
gettimeofday({987804926, 920949}, NULL) = 0
stat64(0x8179e00, 0xbffff49c)           = 0
stat64(0x8179e00, 0xbffff49c)           = -1 ENOENT (No such file or directory)
stat64(0x8179e00, 0xbffff49c)           = -1 ENOENT (No such file or directory)
open("Remote", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 20
fstat64(0x14, 0xbfffe2d8)               = 0
shmat(20, 0, 0x2ptrace: umoven: Input/output error
)                       = ?
ipc_subcall(0x14, 0x81b5860, 0x10000, 0x2) = 72
ipc_subcall(0x14, 0x81b5860, 0x10000, 0x2) = 0
close(20)                               = 0
time(NULL)                              = 987804926
open("Remote/1_2", O_WRONLY|O_NONBLOCK|O_CREAT|O_LARGEFILE, 0744) = 20
fstat64(0x14, 0xbffff57c)               = 0
gettimeofday({987804926, 922591}, NULL) = 0
upeek: ptrace(PTRACE_PEEKUSER, ... ): Input/output error

-- 
John M. Trostel
Linux OS Engineer
Connex
jtrostel at connex.com




More information about the samba-technical mailing list