[linux-cifs-client] Re: cifs caching problem fixed? and GENERIC_WRITE vs. GENERIC_ALL fix pushed to 2.4 cvs

Ian ian at gallowit.com
Tue Feb 3 13:49:58 GMT 2004


-----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