Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
0e574af1
Commit
0e574af1
authored
Oct 27, 2005
by
Trond Myklebust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
NFS: Cleanup initialisation of struct nfs_fattr
Signed-off-by:
Trond Myklebust
<
Trond.Myklebust@netapp.com
>
parent
4c2cb58c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
71 additions
and
65 deletions
+71
-65
fs/nfs/dir.c
fs/nfs/dir.c
+1
-0
fs/nfs/nfs3proc.c
fs/nfs/nfs3proc.c
+29
-29
fs/nfs/nfs4proc.c
fs/nfs/nfs4proc.c
+20
-23
fs/nfs/proc.c
fs/nfs/proc.c
+13
-13
fs/nfs/read.c
fs/nfs/read.c
+1
-0
fs/nfs/write.c
fs/nfs/write.c
+2
-0
include/linux/nfs_fs.h
include/linux/nfs_fs.h
+5
-0
No files found.
fs/nfs/dir.c
View file @
0e574af1
...
...
@@ -532,6 +532,7 @@ static int nfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
my_entry
.
eof
=
0
;
my_entry
.
fh
=
&
fh
;
my_entry
.
fattr
=
&
fattr
;
nfs_fattr_init
(
&
fattr
);
desc
->
entry
=
&
my_entry
;
while
(
!
desc
->
entry
->
eof
)
{
...
...
fs/nfs/nfs3proc.c
View file @
0e574af1
...
...
@@ -78,7 +78,7 @@ nfs3_proc_get_root(struct nfs_server *server, struct nfs_fh *fhandle,
int
status
;
dprintk
(
"%s: call fsinfo
\n
"
,
__FUNCTION__
);
info
->
fattr
->
valid
=
0
;
nfs_fattr_init
(
info
->
fattr
)
;
status
=
rpc_call
(
server
->
client_sys
,
NFS3PROC_FSINFO
,
fhandle
,
info
,
0
);
dprintk
(
"%s: reply fsinfo: %d
\n
"
,
__FUNCTION__
,
status
);
if
(
!
(
info
->
fattr
->
valid
&
NFS_ATTR_FATTR
))
{
...
...
@@ -98,7 +98,7 @@ nfs3_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
int
status
;
dprintk
(
"NFS call getattr
\n
"
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call
(
server
->
client
,
NFS3PROC_GETATTR
,
fhandle
,
fattr
,
0
);
dprintk
(
"NFS reply getattr: %d
\n
"
,
status
);
...
...
@@ -117,7 +117,7 @@ nfs3_proc_setattr(struct dentry *dentry, struct nfs_fattr *fattr,
int
status
;
dprintk
(
"NFS call setattr
\n
"
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
inode
),
NFS3PROC_SETATTR
,
&
arg
,
fattr
,
0
);
if
(
status
==
0
)
nfs_setattr_update_inode
(
inode
,
sattr
);
...
...
@@ -143,8 +143,8 @@ nfs3_proc_lookup(struct inode *dir, struct qstr *name,
int
status
;
dprintk
(
"NFS call lookup %s
\n
"
,
name
->
name
);
dir_attr
.
valid
=
0
;
fattr
->
valid
=
0
;
nfs_fattr_init
(
&
dir_attr
)
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFS3PROC_LOOKUP
,
&
arg
,
&
res
,
0
);
if
(
status
>=
0
&&
!
(
fattr
->
valid
&
NFS_ATTR_FATTR
))
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFS3PROC_GETATTR
,
...
...
@@ -174,7 +174,6 @@ static int nfs3_proc_access(struct inode *inode, struct nfs_access_entry *entry)
int
status
;
dprintk
(
"NFS call access
\n
"
);
fattr
.
valid
=
0
;
if
(
mode
&
MAY_READ
)
arg
.
access
|=
NFS3_ACCESS_READ
;
...
...
@@ -189,6 +188,7 @@ static int nfs3_proc_access(struct inode *inode, struct nfs_access_entry *entry)
if
(
mode
&
MAY_EXEC
)
arg
.
access
|=
NFS3_ACCESS_EXECUTE
;
}
nfs_fattr_init
(
&
fattr
);
status
=
rpc_call_sync
(
NFS_CLIENT
(
inode
),
&
msg
,
0
);
nfs_refresh_inode
(
inode
,
&
fattr
);
if
(
status
==
0
)
{
...
...
@@ -217,7 +217,7 @@ static int nfs3_proc_readlink(struct inode *inode, struct page *page,
int
status
;
dprintk
(
"NFS call readlink
\n
"
);
fattr
.
valid
=
0
;
nfs_fattr_init
(
&
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
inode
),
NFS3PROC_READLINK
,
&
args
,
&
fattr
,
0
);
nfs_refresh_inode
(
inode
,
&
fattr
);
...
...
@@ -240,7 +240,7 @@ static int nfs3_proc_read(struct nfs_read_data *rdata)
dprintk
(
"NFS call read %d @ %Ld
\n
"
,
rdata
->
args
.
count
,
(
long
long
)
rdata
->
args
.
offset
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call_sync
(
NFS_CLIENT
(
inode
),
&
msg
,
flags
);
if
(
status
>=
0
)
nfs_refresh_inode
(
inode
,
fattr
);
...
...
@@ -263,7 +263,7 @@ static int nfs3_proc_write(struct nfs_write_data *wdata)
dprintk
(
"NFS call write %d @ %Ld
\n
"
,
wdata
->
args
.
count
,
(
long
long
)
wdata
->
args
.
offset
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call_sync
(
NFS_CLIENT
(
inode
),
&
msg
,
rpcflags
);
if
(
status
>=
0
)
nfs_refresh_inode
(
inode
,
fattr
);
...
...
@@ -285,7 +285,7 @@ static int nfs3_proc_commit(struct nfs_write_data *cdata)
dprintk
(
"NFS call commit %d @ %Ld
\n
"
,
cdata
->
args
.
count
,
(
long
long
)
cdata
->
args
.
offset
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call_sync
(
NFS_CLIENT
(
inode
),
&
msg
,
0
);
if
(
status
>=
0
)
nfs_refresh_inode
(
inode
,
fattr
);
...
...
@@ -329,8 +329,8 @@ nfs3_proc_create(struct inode *dir, struct dentry *dentry, struct iattr *sattr,
sattr
->
ia_mode
&=
~
current
->
fs
->
umask
;
again:
dir_attr
.
valid
=
0
;
fattr
.
valid
=
0
;
nfs_fattr_init
(
&
dir_attr
)
;
nfs_fattr_init
(
&
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFS3PROC_CREATE
,
&
arg
,
&
res
,
0
);
nfs_refresh_inode
(
dir
,
&
dir_attr
);
...
...
@@ -401,7 +401,7 @@ nfs3_proc_remove(struct inode *dir, struct qstr *name)
int
status
;
dprintk
(
"NFS call remove %s
\n
"
,
name
->
name
);
dir_attr
.
valid
=
0
;
nfs_fattr_init
(
&
dir_attr
)
;
status
=
rpc_call_sync
(
NFS_CLIENT
(
dir
),
&
msg
,
0
);
nfs_refresh_inode
(
dir
,
&
dir_attr
);
dprintk
(
"NFS reply remove: %d
\n
"
,
status
);
...
...
@@ -422,7 +422,7 @@ nfs3_proc_unlink_setup(struct rpc_message *msg, struct dentry *dir, struct qstr
ptr
->
arg
.
fh
=
NFS_FH
(
dir
->
d_inode
);
ptr
->
arg
.
name
=
name
->
name
;
ptr
->
arg
.
len
=
name
->
len
;
ptr
->
res
.
valid
=
0
;
nfs_fattr_init
(
&
ptr
->
res
)
;
msg
->
rpc_proc
=
&
nfs3_procedures
[
NFS3PROC_REMOVE
];
msg
->
rpc_argp
=
&
ptr
->
arg
;
msg
->
rpc_resp
=
&
ptr
->
res
;
...
...
@@ -465,8 +465,8 @@ nfs3_proc_rename(struct inode *old_dir, struct qstr *old_name,
int
status
;
dprintk
(
"NFS call rename %s -> %s
\n
"
,
old_name
->
name
,
new_name
->
name
);
old_dir_attr
.
valid
=
0
;
n
ew_dir_attr
.
valid
=
0
;
nfs_fattr_init
(
&
old_dir_attr
)
;
n
fs_fattr_init
(
&
new_dir_attr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
old_dir
),
NFS3PROC_RENAME
,
&
arg
,
&
res
,
0
);
nfs_refresh_inode
(
old_dir
,
&
old_dir_attr
);
nfs_refresh_inode
(
new_dir
,
&
new_dir_attr
);
...
...
@@ -491,8 +491,8 @@ nfs3_proc_link(struct inode *inode, struct inode *dir, struct qstr *name)
int
status
;
dprintk
(
"NFS call link %s
\n
"
,
name
->
name
);
dir_attr
.
valid
=
0
;
fattr
.
valid
=
0
;
nfs_fattr_init
(
&
dir_attr
)
;
nfs_fattr_init
(
&
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
inode
),
NFS3PROC_LINK
,
&
arg
,
&
res
,
0
);
nfs_refresh_inode
(
dir
,
&
dir_attr
);
nfs_refresh_inode
(
inode
,
&
fattr
);
...
...
@@ -524,8 +524,8 @@ nfs3_proc_symlink(struct inode *dir, struct qstr *name, struct qstr *path,
if
(
path
->
len
>
NFS3_MAXPATHLEN
)
return
-
ENAMETOOLONG
;
dprintk
(
"NFS call symlink %s -> %s
\n
"
,
name
->
name
,
path
->
name
);
dir_attr
.
valid
=
0
;
fattr
->
valid
=
0
;
nfs_fattr_init
(
&
dir_attr
)
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFS3PROC_SYMLINK
,
&
arg
,
&
res
,
0
);
nfs_refresh_inode
(
dir
,
&
dir_attr
);
dprintk
(
"NFS reply symlink: %d
\n
"
,
status
);
...
...
@@ -552,11 +552,11 @@ nfs3_proc_mkdir(struct inode *dir, struct dentry *dentry, struct iattr *sattr)
int
status
;
dprintk
(
"NFS call mkdir %s
\n
"
,
dentry
->
d_name
.
name
);
dir_attr
.
valid
=
0
;
fattr
.
valid
=
0
;
sattr
->
ia_mode
&=
~
current
->
fs
->
umask
;
nfs_fattr_init
(
&
dir_attr
);
nfs_fattr_init
(
&
fattr
);
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFS3PROC_MKDIR
,
&
arg
,
&
res
,
0
);
nfs_refresh_inode
(
dir
,
&
dir_attr
);
if
(
status
!=
0
)
...
...
@@ -582,7 +582,7 @@ nfs3_proc_rmdir(struct inode *dir, struct qstr *name)
int
status
;
dprintk
(
"NFS call rmdir %s
\n
"
,
name
->
name
);
dir_attr
.
valid
=
0
;
nfs_fattr_init
(
&
dir_attr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFS3PROC_RMDIR
,
&
arg
,
&
dir_attr
,
0
);
nfs_refresh_inode
(
dir
,
&
dir_attr
);
dprintk
(
"NFS reply rmdir: %d
\n
"
,
status
);
...
...
@@ -634,7 +634,7 @@ nfs3_proc_readdir(struct dentry *dentry, struct rpc_cred *cred,
dprintk
(
"NFS call readdir%s %d
\n
"
,
plus
?
"plus"
:
""
,
(
unsigned
int
)
cookie
);
dir_attr
.
valid
=
0
;
nfs_fattr_init
(
&
dir_attr
)
;
status
=
rpc_call_sync
(
NFS_CLIENT
(
dir
),
&
msg
,
0
);
nfs_refresh_inode
(
dir
,
&
dir_attr
);
dprintk
(
"NFS reply readdir: %d
\n
"
,
status
);
...
...
@@ -676,8 +676,8 @@ nfs3_proc_mknod(struct inode *dir, struct dentry *dentry, struct iattr *sattr,
sattr
->
ia_mode
&=
~
current
->
fs
->
umask
;
dir_attr
.
valid
=
0
;
fattr
.
valid
=
0
;
nfs_fattr_init
(
&
dir_attr
)
;
nfs_fattr_init
(
&
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFS3PROC_MKNOD
,
&
arg
,
&
res
,
0
);
nfs_refresh_inode
(
dir
,
&
dir_attr
);
if
(
status
!=
0
)
...
...
@@ -698,7 +698,7 @@ nfs3_proc_statfs(struct nfs_server *server, struct nfs_fh *fhandle,
int
status
;
dprintk
(
"NFS call fsstat
\n
"
);
stat
->
fattr
->
valid
=
0
;
nfs_fattr_init
(
stat
->
fattr
)
;
status
=
rpc_call
(
server
->
client
,
NFS3PROC_FSSTAT
,
fhandle
,
stat
,
0
);
dprintk
(
"NFS reply statfs: %d
\n
"
,
status
);
return
status
;
...
...
@@ -711,7 +711,7 @@ nfs3_proc_fsinfo(struct nfs_server *server, struct nfs_fh *fhandle,
int
status
;
dprintk
(
"NFS call fsinfo
\n
"
);
info
->
fattr
->
valid
=
0
;
nfs_fattr_init
(
info
->
fattr
)
;
status
=
rpc_call
(
server
->
client_sys
,
NFS3PROC_FSINFO
,
fhandle
,
info
,
0
);
dprintk
(
"NFS reply fsinfo: %d
\n
"
,
status
);
return
status
;
...
...
@@ -724,7 +724,7 @@ nfs3_proc_pathconf(struct nfs_server *server, struct nfs_fh *fhandle,
int
status
;
dprintk
(
"NFS call pathconf
\n
"
);
info
->
fattr
->
valid
=
0
;
nfs_fattr_init
(
info
->
fattr
)
;
status
=
rpc_call
(
server
->
client
,
NFS3PROC_PATHCONF
,
fhandle
,
info
,
0
);
dprintk
(
"NFS reply pathconf: %d
\n
"
,
status
);
return
status
;
...
...
fs/nfs/nfs4proc.c
View file @
0e574af1
...
...
@@ -494,9 +494,7 @@ static int _nfs4_open_expired(struct nfs4_state_owner *sp, struct nfs4_state *st
struct
inode
*
inode
=
state
->
inode
;
struct
nfs_server
*
server
=
NFS_SERVER
(
dir
);
struct
nfs_delegation
*
delegation
=
NFS_I
(
inode
)
->
delegation
;
struct
nfs_fattr
f_attr
=
{
.
valid
=
0
,
};
struct
nfs_fattr
f_attr
;
struct
nfs_openargs
o_arg
=
{
.
fh
=
NFS_FH
(
dir
),
.
open_flags
=
state
->
state
,
...
...
@@ -522,6 +520,7 @@ static int _nfs4_open_expired(struct nfs4_state_owner *sp, struct nfs4_state *st
status
=
-
ENOMEM
;
if
(
o_arg
.
seqid
==
NULL
)
goto
out
;
nfs_fattr_init
(
&
f_attr
);
status
=
_nfs4_proc_open
(
dir
,
sp
,
&
o_arg
,
&
o_res
);
if
(
status
!=
0
)
goto
out_nodeleg
;
...
...
@@ -692,9 +691,7 @@ static int _nfs4_do_open(struct inode *dir, struct dentry *dentry, int flags, st
struct
nfs4_client
*
clp
=
server
->
nfs4_state
;
struct
inode
*
inode
=
NULL
;
int
status
;
struct
nfs_fattr
f_attr
=
{
.
valid
=
0
,
};
struct
nfs_fattr
f_attr
;
struct
nfs_openargs
o_arg
=
{
.
fh
=
NFS_FH
(
dir
),
.
open_flags
=
flags
,
...
...
@@ -726,6 +723,7 @@ static int _nfs4_do_open(struct inode *dir, struct dentry *dentry, int flags, st
o_arg
.
seqid
=
nfs_alloc_seqid
(
&
sp
->
so_seqid
);
if
(
o_arg
.
seqid
==
NULL
)
return
-
ENOMEM
;
nfs_fattr_init
(
&
f_attr
);
status
=
_nfs4_proc_open
(
dir
,
sp
,
&
o_arg
,
&
o_res
);
if
(
status
!=
0
)
goto
out_err
;
...
...
@@ -824,7 +822,7 @@ static int _nfs4_do_setattr(struct nfs_server *server, struct nfs_fattr *fattr,
};
int
status
;
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
if
(
state
!=
NULL
)
{
msg
.
rpc_cred
=
state
->
owner
->
so_cred
;
...
...
@@ -1107,13 +1105,12 @@ static int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fh
static
int
_nfs4_lookup_root
(
struct
nfs_server
*
server
,
struct
nfs_fh
*
fhandle
,
struct
nfs_fsinfo
*
info
)
{
struct
nfs_fattr
*
fattr
=
info
->
fattr
;
struct
nfs4_lookup_root_arg
args
=
{
.
bitmask
=
nfs4_fattr_bitmap
,
};
struct
nfs4_lookup_res
res
=
{
.
server
=
server
,
.
fattr
=
fattr
,
.
fattr
=
info
->
fattr
,
.
fh
=
fhandle
,
};
struct
rpc_message
msg
=
{
...
...
@@ -1121,7 +1118,7 @@ static int _nfs4_lookup_root(struct nfs_server *server, struct nfs_fh *fhandle,
.
rpc_argp
=
&
args
,
.
rpc_resp
=
&
res
,
};
fattr
->
valid
=
0
;
nfs_fattr_init
(
info
->
fattr
)
;
return
rpc_call_sync
(
server
->
client
,
&
msg
,
0
);
}
...
...
@@ -1184,7 +1181,7 @@ static int nfs4_proc_get_root(struct nfs_server *server, struct nfs_fh *fhandle,
q
.
len
=
p
-
q
.
name
;
do
{
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
nfs4_handle_exception
(
server
,
rpc_call_sync
(
server
->
client
,
&
msg
,
0
),
&
exception
);
...
...
@@ -1221,7 +1218,7 @@ static int _nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
.
rpc_resp
=
&
res
,
};
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
return
rpc_call_sync
(
server
->
client
,
&
msg
,
0
);
}
...
...
@@ -1263,7 +1260,7 @@ nfs4_proc_setattr(struct dentry *dentry, struct nfs_fattr *fattr,
struct
nfs4_state
*
state
;
int
status
;
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
cred
=
rpcauth_lookupcred
(
NFS_SERVER
(
inode
)
->
client
->
cl_auth
,
0
);
if
(
IS_ERR
(
cred
))
...
...
@@ -1309,7 +1306,7 @@ static int _nfs4_proc_lookup(struct inode *dir, struct qstr *name,
.
rpc_resp
=
&
res
,
};
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
dprintk
(
"NFS call lookup %s
\n
"
,
name
->
name
);
status
=
rpc_call_sync
(
NFS_CLIENT
(
dir
),
&
msg
,
0
);
...
...
@@ -1458,7 +1455,7 @@ static int _nfs4_proc_read(struct nfs_read_data *rdata)
dprintk
(
"NFS call read %d @ %Ld
\n
"
,
rdata
->
args
.
count
,
(
long
long
)
rdata
->
args
.
offset
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call_sync
(
server
->
client
,
&
msg
,
flags
);
if
(
!
status
)
renew_lease
(
server
,
timestamp
);
...
...
@@ -1495,7 +1492,7 @@ static int _nfs4_proc_write(struct nfs_write_data *wdata)
dprintk
(
"NFS call write %d @ %Ld
\n
"
,
wdata
->
args
.
count
,
(
long
long
)
wdata
->
args
.
offset
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call_sync
(
server
->
client
,
&
msg
,
rpcflags
);
dprintk
(
"NFS reply write: %d
\n
"
,
status
);
return
status
;
...
...
@@ -1529,7 +1526,7 @@ static int _nfs4_proc_commit(struct nfs_write_data *cdata)
dprintk
(
"NFS call commit %d @ %Ld
\n
"
,
cdata
->
args
.
count
,
(
long
long
)
cdata
->
args
.
offset
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call_sync
(
server
->
client
,
&
msg
,
0
);
dprintk
(
"NFS reply commit: %d
\n
"
,
status
);
return
status
;
...
...
@@ -1769,7 +1766,7 @@ static int _nfs4_proc_symlink(struct inode *dir, struct qstr *name,
if
(
path
->
len
>
NFS4_MAXPATHLEN
)
return
-
ENAMETOOLONG
;
arg
.
u
.
symlink
=
path
;
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call_sync
(
NFS_CLIENT
(
dir
),
&
msg
,
0
);
if
(
!
status
)
...
...
@@ -1818,7 +1815,7 @@ static int _nfs4_proc_mkdir(struct inode *dir, struct dentry *dentry,
};
int
status
;
fattr
.
valid
=
0
;
nfs_fattr_init
(
&
fattr
)
;
status
=
rpc_call_sync
(
NFS_CLIENT
(
dir
),
&
msg
,
0
);
if
(
!
status
)
{
...
...
@@ -1916,7 +1913,7 @@ static int _nfs4_proc_mknod(struct inode *dir, struct dentry *dentry,
int
status
;
int
mode
=
sattr
->
ia_mode
;
fattr
.
valid
=
0
;
nfs_fattr_init
(
&
fattr
)
;
BUG_ON
(
!
(
sattr
->
ia_valid
&
ATTR_MODE
));
BUG_ON
(
!
S_ISFIFO
(
mode
)
&&
!
S_ISBLK
(
mode
)
&&
!
S_ISCHR
(
mode
)
&&
!
S_ISSOCK
(
mode
));
...
...
@@ -1969,7 +1966,7 @@ static int _nfs4_proc_statfs(struct nfs_server *server, struct nfs_fh *fhandle,
.
rpc_resp
=
fsstat
,
};
fsstat
->
fattr
->
valid
=
0
;
nfs_fattr_init
(
fsstat
->
fattr
)
;
return
rpc_call_sync
(
server
->
client
,
&
msg
,
0
);
}
...
...
@@ -2016,7 +2013,7 @@ static int nfs4_do_fsinfo(struct nfs_server *server, struct nfs_fh *fhandle, str
static
int
nfs4_proc_fsinfo
(
struct
nfs_server
*
server
,
struct
nfs_fh
*
fhandle
,
struct
nfs_fsinfo
*
fsinfo
)
{
fsinfo
->
fattr
->
valid
=
0
;
nfs_fattr_init
(
fsinfo
->
fattr
)
;
return
nfs4_do_fsinfo
(
server
,
fhandle
,
fsinfo
);
}
...
...
@@ -2039,7 +2036,7 @@ static int _nfs4_proc_pathconf(struct nfs_server *server, struct nfs_fh *fhandle
return
0
;
}
pathconf
->
fattr
->
valid
=
0
;
nfs_fattr_init
(
pathconf
->
fattr
)
;
return
rpc_call_sync
(
server
->
client
,
&
msg
,
0
);
}
...
...
fs/nfs/proc.c
View file @
0e574af1
...
...
@@ -61,7 +61,7 @@ nfs_proc_get_root(struct nfs_server *server, struct nfs_fh *fhandle,
int
status
;
dprintk
(
"%s: call getattr
\n
"
,
__FUNCTION__
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call
(
server
->
client_sys
,
NFSPROC_GETATTR
,
fhandle
,
fattr
,
0
);
dprintk
(
"%s: reply getattr: %d
\n
"
,
__FUNCTION__
,
status
);
if
(
status
)
...
...
@@ -93,7 +93,7 @@ nfs_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
int
status
;
dprintk
(
"NFS call getattr
\n
"
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call
(
server
->
client
,
NFSPROC_GETATTR
,
fhandle
,
fattr
,
0
);
dprintk
(
"NFS reply getattr: %d
\n
"
,
status
);
...
...
@@ -112,7 +112,7 @@ nfs_proc_setattr(struct dentry *dentry, struct nfs_fattr *fattr,
int
status
;
dprintk
(
"NFS call setattr
\n
"
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
inode
),
NFSPROC_SETATTR
,
&
arg
,
fattr
,
0
);
if
(
status
==
0
)
nfs_setattr_update_inode
(
inode
,
sattr
);
...
...
@@ -136,7 +136,7 @@ nfs_proc_lookup(struct inode *dir, struct qstr *name,
int
status
;
dprintk
(
"NFS call lookup %s
\n
"
,
name
->
name
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFSPROC_LOOKUP
,
&
arg
,
&
res
,
0
);
dprintk
(
"NFS reply lookup: %d
\n
"
,
status
);
return
status
;
...
...
@@ -174,7 +174,7 @@ static int nfs_proc_read(struct nfs_read_data *rdata)
dprintk
(
"NFS call read %d @ %Ld
\n
"
,
rdata
->
args
.
count
,
(
long
long
)
rdata
->
args
.
offset
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call_sync
(
NFS_CLIENT
(
inode
),
&
msg
,
flags
);
if
(
status
>=
0
)
{
nfs_refresh_inode
(
inode
,
fattr
);
...
...
@@ -203,7 +203,7 @@ static int nfs_proc_write(struct nfs_write_data *wdata)
dprintk
(
"NFS call write %d @ %Ld
\n
"
,
wdata
->
args
.
count
,
(
long
long
)
wdata
->
args
.
offset
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
status
=
rpc_call_sync
(
NFS_CLIENT
(
inode
),
&
msg
,
flags
);
if
(
status
>=
0
)
{
nfs_refresh_inode
(
inode
,
fattr
);
...
...
@@ -232,7 +232,7 @@ nfs_proc_create(struct inode *dir, struct dentry *dentry, struct iattr *sattr,
};
int
status
;
fattr
.
valid
=
0
;
nfs_fattr_init
(
&
fattr
)
;
dprintk
(
"NFS call create %s
\n
"
,
dentry
->
d_name
.
name
);
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFSPROC_CREATE
,
&
arg
,
&
res
,
0
);
if
(
status
==
0
)
...
...
@@ -273,12 +273,12 @@ nfs_proc_mknod(struct inode *dir, struct dentry *dentry, struct iattr *sattr,
sattr
->
ia_size
=
new_encode_dev
(
rdev
);
/* get out your barf bag */
}
fattr
.
valid
=
0
;
nfs_fattr_init
(
&
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFSPROC_CREATE
,
&
arg
,
&
res
,
0
);
if
(
status
==
-
EINVAL
&&
S_ISFIFO
(
mode
))
{
sattr
->
ia_mode
=
mode
;
fattr
.
valid
=
0
;
nfs_fattr_init
(
&
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFSPROC_CREATE
,
&
arg
,
&
res
,
0
);
}
if
(
status
==
0
)
...
...
@@ -391,7 +391,7 @@ nfs_proc_symlink(struct inode *dir, struct qstr *name, struct qstr *path,
if
(
path
->
len
>
NFS2_MAXPATHLEN
)
return
-
ENAMETOOLONG
;
dprintk
(
"NFS call symlink %s -> %s
\n
"
,
name
->
name
,
path
->
name
);
fattr
->
valid
=
0
;
nfs_fattr_init
(
fattr
)
;
fhandle
->
size
=
0
;
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFSPROC_SYMLINK
,
&
arg
,
NULL
,
0
);
dprintk
(
"NFS reply symlink: %d
\n
"
,
status
);
...
...
@@ -416,7 +416,7 @@ nfs_proc_mkdir(struct inode *dir, struct dentry *dentry, struct iattr *sattr)
int
status
;
dprintk
(
"NFS call mkdir %s
\n
"
,
dentry
->
d_name
.
name
);
fattr
.
valid
=
0
;
nfs_fattr_init
(
&
fattr
)
;
status
=
rpc_call
(
NFS_CLIENT
(
dir
),
NFSPROC_MKDIR
,
&
arg
,
&
res
,
0
);
if
(
status
==
0
)
status
=
nfs_instantiate
(
dentry
,
&
fhandle
,
&
fattr
);
...
...
@@ -484,7 +484,7 @@ nfs_proc_statfs(struct nfs_server *server, struct nfs_fh *fhandle,
int
status
;
dprintk
(
"NFS call statfs
\n
"
);
stat
->
fattr
->
valid
=
0
;
nfs_fattr_init
(
stat
->
fattr
)
;
status
=
rpc_call
(
server
->
client
,
NFSPROC_STATFS
,
fhandle
,
&
fsinfo
,
0
);
dprintk
(
"NFS reply statfs: %d
\n
"
,
status
);
if
(
status
)
...
...
@@ -507,7 +507,7 @@ nfs_proc_fsinfo(struct nfs_server *server, struct nfs_fh *fhandle,
int
status
;
dprintk
(
"NFS call fsinfo
\n
"
);
info
->
fattr
->
valid
=
0
;
nfs_fattr_init
(
info
->
fattr
)
;
status
=
rpc_call
(
server
->
client
,
NFSPROC_STATFS
,
fhandle
,
&
fsinfo
,
0
);
dprintk
(
"NFS reply fsinfo: %d
\n
"
,
status
);
if
(
status
)
...
...
fs/nfs/read.c
View file @
0e574af1
...
...
@@ -215,6 +215,7 @@ static void nfs_read_rpcsetup(struct nfs_page *req, struct nfs_read_data *data,
data
->
res
.
fattr
=
&
data
->
fattr
;
data
->
res
.
count
=
count
;
data
->
res
.
eof
=
0
;
nfs_fattr_init
(
&
data
->
fattr
);
NFS_PROTO
(
inode
)
->
read_setup
(
data
);
...
...
fs/nfs/write.c
View file @
0e574af1
...
...
@@ -870,6 +870,7 @@ static void nfs_write_rpcsetup(struct nfs_page *req,
data
->
res
.
fattr
=
&
data
->
fattr
;
data
->
res
.
count
=
count
;
data
->
res
.
verf
=
&
data
->
verf
;
nfs_fattr_init
(
&
data
->
fattr
);
NFS_PROTO
(
inode
)
->
write_setup
(
data
,
how
);
...
...
@@ -1237,6 +1238,7 @@ static void nfs_commit_rpcsetup(struct list_head *head,
data
->
res
.
count
=
0
;
data
->
res
.
fattr
=
&
data
->
fattr
;
data
->
res
.
verf
=
&
data
->
verf
;
nfs_fattr_init
(
&
data
->
fattr
);
NFS_PROTO
(
inode
)
->
commit_setup
(
data
,
how
);
...
...
include/linux/nfs_fs.h
View file @
0e574af1
...
...
@@ -316,6 +316,11 @@ extern void nfs_file_clear_open_context(struct file *filp);
/* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */
extern
u32
root_nfs_parse_addr
(
char
*
name
);
/*__init*/
static
inline
void
nfs_fattr_init
(
struct
nfs_fattr
*
fattr
)
{
fattr
->
valid
=
0
;
}
/*
* linux/fs/nfs/file.c
*/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment