I modified the linux NFS client, kernel 2.4.5 and 2.4.6-pre7, to send
an extra SETATTR, with special values, within nfs_open and nfs_release
so that I would be able to track file open and close.  For the server I
am using a slightly modified linux user level nfs server.
What I noticed is that after this change I get:
RPC: rpciod waiting on sync task!
coming from the kernel under heavy read load, especially with
larger chunks of data 8k, 16, and 64k.
The code introduced into nfs_open and nfs_release is:
        memset( &fattr, 0, sizeof(struct nfs_fattr) );
        memset( &attr, 0, sizeof(struct iattr) );
        attr.ia_valid = ATTR_MODE | ATTR_UID | ATTR_GID | ATTR_SIZE;
        attr.ia_mode = inode->i_mode;
        attr.ia_uid = -10;
        attr.ia_gid = -10;
        attr.ia_size = -10;
        attr.ia_atime = -1;
        attr.ia_mtime = -1;
        attr.ia_ctime = -1;
        attr.ia_attr_flags = -1;
        error = NFS_PROTO(inode)->setattr(inode, &fattr, &attr);
        if ( error ) {
                printk( "nfs_network_openclose: error=%d\n", error );
        }
Does anybody see any problems with this code?  The unmodified nfs client
works fine with the unmodified nfs server.
Thanks
ttyl
Dima
-- 
Dima Brodsky                                   dima@cs.ubc.ca
                                               http://www.cs.ubc.ca/~dima
201-2366 Main Mall                             (604) 822-6179 (Office)
Department of Computer Science                 (604) 822-2895 (DSG Lab)
University of British Columbia, Canada         (604) 822-5485 (FAX)
Computers are like Old Testament gods; lots of rules and no mercy.
							  (Joseph Campbell)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/