[linux-cifs-client] date/timestamp problem fixed, gz with 2.6 files posted

Steve French smfltc at us.ibm.com
Thu Feb 5 01:26:06 GMT 2004


The date problem has been fixed. It was caused by a math overflow that
may be unique to gcc.  For all times more than 8 minutes after the start
of 1970, they will overflow and yield random numbers.  Fun - turns out
gcc does not promote immediately size promote (like some other
compilers) to the left hand side size.

	u64 dce_time = unix_time_which_is_u32 * 10000000;

overflows and to work requires a cast of the right hand side elements to
u64.  Very strange.

Your vi example still returns the odd warning looking at that at the
moment.   The project page has been updated with links to a gz
containing the current 2.6 version and 2.4 version (1.0.2 and 1.0.2a
respectively).

Th

On Tue, 2004-02-03 at 07:49, Ian wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> HI
> ~    I tried the fixes this morning and found that the odd permission
> problem had been solved however, I found that this has broken something
> else. Here is the test I ran
> 
> [iamess at strider NT]$ ls -l test
> ls: test: No such file or directory
> [iamess at strider NT]$ touch test
> [iamess at strider NT]$ ls -l test
> - -rw-rw-rw-    1 iamess   iamess          0 Aug  9  2037 test     (note 
> date)
> [iamess at strider NT]$ vi test
> 
> E325: ATTENTION
> Found a swap file by the name ".test.swp"
> ~          owned by: iamess   dated: Tue Feb  3 12:06:34 2004
> ~         [cannot be read]
> While opening file "test"
> ~             dated: Sun Aug  9 14:26:34 2037
> ~      NEWER than swap file!
> 
> (1) Another program may be editing the same file.
> ~    If this is the case, be careful not to end up with two
> ~    different instances of the same file when making changes.
> ~    Quit, or continue with caution.
> 
> (2) An edit session for this file crashed.
> ~    If this is the case, use ":recover" or "vim -r test"
> ~    to recover the changes (see ":help recovery").
> ~    If you did this already, delete the swap file ".test.swp"
> ~    to avoid this message.
> 
> Swap file ".test.swp" already exists!
> [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (D)elete it:
> 
> ~    Chose to Delete file vi returns an emptly file
> ~    Entered some text
> 
> [iamess at strider NT]$ ls -l test*
> - -rw-rw-rw-    1 iamess   iamess         16 Feb  3 13:44 test
> - -rw-rw-rw-    1 iamess   iamess          0 Feb  3 13:44 test~
> [iamess at strider NT]$ ls -l .test*
> - -rw-rw-rw-    1 iamess   iamess          0 Feb  3 13:43 .test.swp
> - -rw-rw-rw-    1 iamess   iamess          0 Feb  3 13:41 .test.swpx
> 
> ~    I'm guessing but it seems that an open request is being made at
> least twice.
> 
> Cheers,
> Ian
> 
> Steve French wrote:
> 
> |Howard,
> |See below - this seems to work now based on my tests on 2.6 which has
> |the identical code in these routines to 2.4.  The caching/oplock problem
> |no longer fails with the minor change to cifsfs.c that I made today and
> |pushed in the bk://cifs.bkbits.net/linux-2.5cifs 2.6 development tree (I
> |also backported them to the 2.4 cvs version in samba.org cvs but they
> |have not been tested yet on 2.4).  The 2.4 code now includes the fix Ian
> |was asking about as well (for the odd share permissions access denied).
> |
> |/localhost/stevef on /mnt type cifs (0)
> |stevef95:/home/stevef/bk/linux-2.5cifs # ls -l /mnt/foo
> |ls: /mnt/foo: No such file or directory
> |stevef95:/home/stevef/bk/linux-2.5cifs # touch !$
> |touch /mnt/foo
> |stevef95:/home/stevef/bk/linux-2.5cifs # ls -l /mnt/foo
> |-rwxrwxrwx    1 stevef   users           0 2004-02-02 18:24 /mnt/foo
> |stevef95:/home/stevef/bk/linux-2.5cifs # rm /mnt/foo
> |stevef95:/home/stevef/bk/linux-2.5cifs # echo "This is the client" >
> |/mnt/foo
> |stevef95:/home/stevef/bk/linux-2.5cifs # ls -l /mnt/foo
> |-rwxrwxrwx    1 stevef   users          19 2004-02-02 18:25 /mnt/foo
> |stevef95:/home/stevef/bk/linux-2.5cifs # echo "look at server version of
> |file now"
> |look at server version of file now
> |stevef95:/home/stevef/bk/linux-2.5cifs # ls -l /data/pchome/stevef/foo
> |-rwxrwxrwx    1 stevef   users          19 2004-02-02 18:25
> |/data/pchome/stevef/foo
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /data/pchome/stevef/foo
> |This is the client
> |stevef95:/home/stevef/bk/linux-2.5cifs # perl -pi -e 's/client/server/'
> |/data/pchome/stevef/foo
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /data/pchome/stevef/foo
> |This is the server
> |stevef95:/home/stevef/bk/linux-2.5cifs # echo "Back to client view of
> |file"
> |Back to client view of file
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /mnt/foo
> |This is the server
> |stevef95:/home/stevef/bk/linux-2.5cifs # touch !$
> |touch /mnt/foo
> |stevef95:/home/stevef/bk/linux-2.5cifs # ls -l /mnt/foo
> |-rwxrwxrwx    1 stevef   users          19 2004-02-02 18:27 /mnt/foo
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /mnt/foo
> |This is the server
> |stevef95:/home/stevef/bk/linux-2.5cifs # toch /mnt/foo
> |bash: toch: command not found
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /mnt/foo
> |This is the server
> |stevef95:/home/stevef/bk/linux-2.5cifs # /usr/local/samba/sbin/smbd -V
> |Version CVS 3.0.1pre1
> |stevef95:/home/stevef/bk/linux-2.5cifs #
> |
> |
> |Then same test with oplock enabled (default)
> |
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /proc/fs/cifs/OplockEnabled
> |1
> |stevef95:/home/stevef/bk/linux-2.5cifs # ls -l /mnt/foo1
> |ls: /mnt/foo1: No such file or directory
> |stevef95:/home/stevef/bk/linux-2.5cifs # touch !$
> |touch /mnt/foo1
> |stevef95:/home/stevef/bk/linux-2.5cifs # ls -l /mnt/foo1
> |-rwxrwxrwx    1 stevef   users           0 2004-02-02 18:30 /mnt/foo1
> |stevef95:/home/stevef/bk/linux-2.5cifs # rm !$
> |rm /mnt/foo1
> |stevef95:/home/stevef/bk/linux-2.5cifs # echo "This is client" >
> |/mnt/foo1
> |stevef95:/home/stevef/bk/linux-2.5cifs # ls -l /mnt/foo1
> |-rwxrwxrwx    1 stevef   users          15 2004-02-02 18:31 /mnt/foo1
> |stevef95:/home/stevef/bk/linux-2.5cifs # echo "switch to server view of
> |same file"
> |switch to server view of same file
> |stevef95:/home/stevef/bk/linux-2.5cifs # ls -l /data/pchome/stevef/foo1
> |-rwxrwxrwx    1 stevef   users          15 2004-02-02 18:31
> |/data/pchome/stevef/foo1
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /data/pchome/stevef/foo1
> |This is client
> |stevef95:/home/stevef/bk/linux-2.5cifs # perl -pi -e 's/client/server/'
> |/data/pchome/stevef/foo1
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /data/pchome/stevef/foo1
> |This is server
> |stevef95:/home/stevef/bk/linux-2.5cifs # echo switch to client view
> |switch to client view
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /mnt/foo1
> |This is server
> |stevef95:/home/stevef/bk/linux-2.5cifs # touch !$
> |touch /mnt/foo1
> |stevef95:/home/stevef/bk/linux-2.5cifs # ls -l /mnt/foo1
> |-rwxrwxrwx    1 stevef   users          15 2004-02-02 18:33 /mnt/foo1
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /mnt/foo1
> |This is server
> |stevef95:/home/stevef/bk/linux-2.5cifs # touch /mnt/foo1
> |stevef95:/home/stevef/bk/linux-2.5cifs # cat /mnt/foo1
> |This is server
> |
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.1 (GNU/Linux)
> 
> iD8DBQFAH6cEzR2KhuAWJ/gRAtsoAJ0XallwGPnXzdPomZm6SVdamwmj/QCgwKFz
> 2lsk74fd434D6mebpTf7kZw=
> =4bGd
> -----END PGP SIGNATURE-----
> 
> 
> 



More information about the linux-cifs-client mailing list