What's the nfs_inode->mm_cred for? The cred for the current user is assigned to it in nfs_open (if we're writing). Comments suggest it's so we have a cred around to work with when we do mmap'ing. Note that the default in the rpc code is to give you a cred for current. Following lines in nfs_writepage_sync are interesting, somewhat typical: if (file) cred = get_rpccred(nfs_file_cred(file)); if (!cred) cred = get_rpccred(NFS_I(inode)->mm_cred); where nfs_file_cred just casts file->private_data to a cred if file is non-NULL (the test above is superfluous). This cred ends up being passed to rpc_call_sync (by nfs4_proc_write).