diff options
author | Neil Brown <neilb@suse.de> | 2008-10-15 23:15:16 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-10-17 13:06:45 -0400 |
commit | 504e518953a330c8d44a95bdd65a5c9f50f1012e (patch) | |
tree | 383df8cd12bebecd9bcf7714b6d8b07324a6353f /fs/nfs/nfs4proc.c | |
parent | 18de9735300756e3ca9c361ef58409d8561dfe0d (diff) |
Make nfs_file_cred more robust.
As not all files have an associated open_context (e.g. device special
files), it is safest to test for the existence of the open context
before de-referencing it.
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index c910413eaeca..83e700a2b0c0 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -1659,8 +1659,10 @@ nfs4_proc_setattr(struct dentry *dentry, struct nfs_fattr *fattr, | |||
1659 | struct nfs_open_context *ctx; | 1659 | struct nfs_open_context *ctx; |
1660 | 1660 | ||
1661 | ctx = nfs_file_open_context(sattr->ia_file); | 1661 | ctx = nfs_file_open_context(sattr->ia_file); |
1662 | cred = ctx->cred; | 1662 | if (ctx) { |
1663 | state = ctx->state; | 1663 | cred = ctx->cred; |
1664 | state = ctx->state; | ||
1665 | } | ||
1664 | } | 1666 | } |
1665 | 1667 | ||
1666 | status = nfs4_do_setattr(inode, cred, fattr, sattr, state); | 1668 | status = nfs4_do_setattr(inode, cred, fattr, sattr, state); |