On Wed, 02 Dec 2009 15:01:35 +0100 Fredrik Liljegren <[email protected]> wrote:
> Jeff Layton wrote: > > On Wed, 02 Dec 2009 10:19:52 +0100 > > Fredrik Liljegren <[email protected]> wrote: > > > > > >> Whenever I create or modify a file on my cifs-mount, be it by `echo > >> "test" >> file` or from bash, the file mode is changed with u+x. > >> However, that does not happen with touch, and usign chmod u-x works as > >> it should. This is very annoying... > >> > > That is strange, I'm not aware of anything in cifs that would change inode > > permissions on a write call. Some questions: > > > > What mount options are you using? > > > I used > nodfs,rw,iocharset=utf8,localcharset=utf8,uid=fiddur,gid=fiddur,credentials=/home/fiddur/.effie-smb > > Hmm, could it be nodfs that messes it up? That's a remnant of earlier > tries to get this right... > > I discovered now that using file_mode=0664,dir_mode=0775 works, but that > is quite suboptimal... > > > > Does the server have any special "create mode" or "create mask" type > > settings that might affect the mode assigned to the inode? > > > The server uses: > force create mode = 0664 > force directory mode = 0775 > > ...but I guess it is unix extensions that makes files other than 0664. > > > What kernel is this client running? > > > 2.6.30-1-amd64 from debian. > > > What kernel is the ubuntu client running? > > > The ubuntu mount used file_mode and dir_mode in the mounting, so that > would be the reason for the difference. (It's a collegues computer...) > > > It might be interesting to see a wire capture while recreating this. > > Instructions on doing that are here: > > > > http://wiki.samba.org/index.php/LinuxCIFS_troubleshooting > > > > If you like, you can send the capture to me directly and I'll have a > > look. > > > Here's the output from a `echo "test" > test1` where test1 gets u+x > (including it, it's <100 rows): > > [195493.276026] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: in cifs_writepages as Xid: 940557 with uid: 0 > [195493.276031] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: leaving cifs_writepages (xid = 940557) rc = 0 > [195500.523217] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > CIFS VFS: in cifs_revalidate as Xid: 940558 with uid: 1000 > [195500.523224] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Revalidate: /tmp/test1 inode 0xffff880112cf75e0 count 1 dentry: > 0xffff880112cb18c0 d_time 4343754864 jiffies 4343767426 > [195500.523228] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Getting info on /tmp/test1 > [195500.523231] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/cifssmb.c: > In QPathInfo (Unix) the path /tmp/test1 > [195500.523252] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > For smb_command 50 > [195500.523255] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > Sending smb: total_len 98 > [195500.523618] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/connect.c: > rfc1002 length 0xa4 > [195500.523628] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Old time 4343754864 > [195500.523630] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > New time 4343767426 > [195500.523634] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Size 5 and blocks 8 > [195500.523636] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > cifs_revalidate - inode unchanged > [195500.523641] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: in cifs_writepages as Xid: 940559 with uid: 1000 > [195500.523645] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: leaving cifs_writepages (xid = 940559) rc = 0 > [195500.523648] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > CIFS VFS: leaving cifs_revalidate (xid = 940558) rc = 0 > [195500.523654] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > setattr_unix on file test1 attrs->ia_valid=0x8068 > [195500.523657] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > CIFS VFS: in cifs_setattr_unix as Xid: 940560 with uid: 1000 > [195500.523661] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/cifssmb.c: > In SetEOF > [195500.523664] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > For smb_command 50 > [195500.523666] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > Sending smb: total_len 108 > [195500.524330] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/connect.c: > rfc1002 length 0x3e > [195500.524337] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > SetEOF by path (setattrs) rc = 0 > [195500.524345] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/cifssmb.c: > In SetUID/GID/Mode > [195500.524348] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > For smb_command 50 > [195500.524351] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > Sending smb: total_len 200 > [195500.524624] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/connect.c: > rfc1002 length 0x3e > [195500.524632] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > CIFS VFS: leaving cifs_setattr_unix (xid = 940560) rc = 0 > [195500.524636] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: in cifs_open as Xid: 940561 with uid: 1000 > [195500.524640] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > inode = 0xffff880112cf75e0 file flags are 0x8241 for /tmp/test1 > [195500.524645] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > For smb_command 162 > [195500.524647] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > Sending smb: total_len 110 > [195500.524946] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/connect.c: > rfc1002 length 0x6b > [195500.524954] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: in cifs_writepages as Xid: 940562 with uid: 1000 > [195500.524957] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: leaving cifs_writepages (xid = 940562) rc = 0 > [195500.524960] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > invalidating remote inode since open detected it changed > [195500.524965] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Getting info on /tmp/test1 > [195500.524967] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/cifssmb.c: > In QPathInfo (Unix) the path /tmp/test1 > [195500.524971] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > For smb_command 50 > [195500.524973] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > Sending smb: total_len 98 > [195500.525275] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/connect.c: > rfc1002 length 0xa4 > [195500.525282] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Old time 4343767426 > [195500.525284] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > New time 4343767427 > [195500.525287] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Size 0 and blocks 8 > [195500.525290] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > Exclusive Oplock granted on inode ffff880112cf75e0 > [195500.525293] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: leaving cifs_open (xid = 940561) rc = 0 > [195500.525301] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: in cifs_writepages as Xid: 940563 with uid: 1000 > [195500.525305] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: leaving cifs_writepages (xid = 940563) rc = 0 > [195500.525308] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > Flush inode ffff880112cf75e0 file ffff8800a582e140 rc 0 > [195500.525316] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/xattr.c: > CIFS VFS: in cifs_getxattr as Xid: 940564 with uid: 1000 > [195500.525320] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/xattr.c: > illegal xattr request security.capability (only user namespace supported) > [195500.525323] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/xattr.c: > CIFS VFS: leaving cifs_getxattr (xid = 940564) rc = -95 > [195500.525326] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > write_begin from 0 len 5 > [195500.525332] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > write_end for page ffffe20004222248 from pos 0 with 5 bytes > [195500.525339] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: in cifs_writepages as Xid: 940565 with uid: 1000 > [195500.525343] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/cifssmb.c: > write2 at 0 5 bytes > [195500.525346] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > For smb_command 47 > [195500.525349] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > Sending smb: total_len 73 > [195500.525642] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/connect.c: > rfc1002 length 0x33 > [195500.525648] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/misc.c: > Null buffer passed to cifs_small_buf_release > [195500.525652] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: leaving cifs_writepages (xid = 940565) rc = 0 > [195500.525656] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > Flush inode ffff880112cf75e0 file ffff8800a582e140 rc 0 > [195500.525659] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: in cifs_close as Xid: 940566 with uid: 1000 > [195500.525662] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/cifssmb.c: > In CIFSSMBClose > [195500.525665] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > For smb_command 4 > [195500.525667] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > Sending smb: total_len 45 > [195500.525900] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/connect.c: > rfc1002 length 0x27 > [195500.525907] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > closing last open instance for inode ffff880112cf75e0 > [195500.525910] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/file.c: > CIFS VFS: leaving cifs_close (xid = 940566) rc = 0 > [195501.720952] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/cifsfs.c: > CIFS VFS: in cifs_statfs as Xid: 940567 with uid: 1000 > [195501.720956] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/cifssmb.c: > In QFSPosixInfo > [195501.720967] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > For smb_command 50 > [195501.720971] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > Sending smb: total_len 72 > [195501.721473] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/connect.c: > rfc1002 length 0x74 > [195501.721496] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/cifsfs.c: > CIFS VFS: leaving cifs_statfs (xid = 940567) rc = 0 > [195501.721503] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > CIFS VFS: in cifs_revalidate as Xid: 940568 with uid: 1000 > [195501.721510] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Revalidate: inode 0xffff88013f4e7d78 count 2 dentry: 0xffff8801036e0d40 > d_time 4341159525 jiffies 4343767726 > [195501.721513] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Getting info on > [195501.721516] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/cifssmb.c: > In QPathInfo (Unix) the path > [195501.721520] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > For smb_command 50 > [195501.721523] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/transport.c: > Sending smb: total_len 78 > [195501.721868] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/connect.c: > rfc1002 length 0xa4 > [195501.721884] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Old time 4343752725 > [195501.721887] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > New time 4343767726 > [195501.721890] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Size 0 and blocks 0 > [195501.721893] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > cifs_revalidate - inode unchanged > [195501.721898] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > CIFS VFS: leaving cifs_revalidate (xid = 940568) rc = 0 > [195501.721953] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > CIFS VFS: in cifs_revalidate as Xid: 940569 with uid: 1000 > [195501.721958] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > Revalidate: inode 0xffff88013f4e7d78 count 2 dentry: 0xffff8801036e0d40 > d_time 4341159525 jiffies 4343767726 > [195501.721962] > /build/buildd-linux-2.6_2.6.30-4-amd64-zA7FCt/linux-2.6-2.6.30/debian/build/source_amd64_none/fs/cifs/inode.c: > CIFS VFS: leaving cifs_revalidate (xid = 940569) rc = 0 > I was actually more interested in a wire capture, but this tells me something too... The logs here indicate that unix extensions were in effect. With that, the file_mode and dir_mode should really never have any effect. I have a feeling that these are bugs that existed prior to the big overhaul of inode handling that went into 2.6.31. Is there a way for you to test a more recent kernel here (something 2.6.31 or 2.6.32-ish)? -- Jeff Layton <[email protected]> -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/options/samba
