|
@@ -788,7 +788,6 @@ struct nfs4_opendata {
|
|
struct nfs4_string owner_name;
|
|
struct nfs4_string owner_name;
|
|
struct nfs4_string group_name;
|
|
struct nfs4_string group_name;
|
|
struct nfs_fattr f_attr;
|
|
struct nfs_fattr f_attr;
|
|
- struct nfs_fattr dir_attr;
|
|
|
|
struct dentry *dir;
|
|
struct dentry *dir;
|
|
struct dentry *dentry;
|
|
struct dentry *dentry;
|
|
struct nfs4_state_owner *owner;
|
|
struct nfs4_state_owner *owner;
|
|
@@ -804,12 +803,10 @@ struct nfs4_opendata {
|
|
static void nfs4_init_opendata_res(struct nfs4_opendata *p)
|
|
static void nfs4_init_opendata_res(struct nfs4_opendata *p)
|
|
{
|
|
{
|
|
p->o_res.f_attr = &p->f_attr;
|
|
p->o_res.f_attr = &p->f_attr;
|
|
- p->o_res.dir_attr = &p->dir_attr;
|
|
|
|
p->o_res.seqid = p->o_arg.seqid;
|
|
p->o_res.seqid = p->o_arg.seqid;
|
|
p->c_res.seqid = p->c_arg.seqid;
|
|
p->c_res.seqid = p->c_arg.seqid;
|
|
p->o_res.server = p->o_arg.server;
|
|
p->o_res.server = p->o_arg.server;
|
|
nfs_fattr_init(&p->f_attr);
|
|
nfs_fattr_init(&p->f_attr);
|
|
- nfs_fattr_init(&p->dir_attr);
|
|
|
|
nfs_fattr_init_names(&p->f_attr, &p->owner_name, &p->group_name);
|
|
nfs_fattr_init_names(&p->f_attr, &p->owner_name, &p->group_name);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -843,7 +840,6 @@ static struct nfs4_opendata *nfs4_opendata_alloc(struct dentry *dentry,
|
|
p->o_arg.name = &dentry->d_name;
|
|
p->o_arg.name = &dentry->d_name;
|
|
p->o_arg.server = server;
|
|
p->o_arg.server = server;
|
|
p->o_arg.bitmask = server->attr_bitmask;
|
|
p->o_arg.bitmask = server->attr_bitmask;
|
|
- p->o_arg.dir_bitmask = server->cache_consistency_bitmask;
|
|
|
|
p->o_arg.claim = NFS4_OPEN_CLAIM_NULL;
|
|
p->o_arg.claim = NFS4_OPEN_CLAIM_NULL;
|
|
if (attrs != NULL && attrs->ia_valid != 0) {
|
|
if (attrs != NULL && attrs->ia_valid != 0) {
|
|
__be32 verf[2];
|
|
__be32 verf[2];
|
|
@@ -1611,8 +1607,6 @@ static int _nfs4_recover_proc_open(struct nfs4_opendata *data)
|
|
|
|
|
|
nfs_fattr_map_and_free_names(NFS_SERVER(dir), &data->f_attr);
|
|
nfs_fattr_map_and_free_names(NFS_SERVER(dir), &data->f_attr);
|
|
|
|
|
|
- nfs_refresh_inode(dir, o_res->dir_attr);
|
|
|
|
-
|
|
|
|
if (o_res->rflags & NFS4_OPEN_RESULT_CONFIRM) {
|
|
if (o_res->rflags & NFS4_OPEN_RESULT_CONFIRM) {
|
|
status = _nfs4_proc_open_confirm(data);
|
|
status = _nfs4_proc_open_confirm(data);
|
|
if (status != 0)
|
|
if (status != 0)
|
|
@@ -1645,11 +1639,8 @@ static int _nfs4_proc_open(struct nfs4_opendata *data)
|
|
|
|
|
|
nfs_fattr_map_and_free_names(server, &data->f_attr);
|
|
nfs_fattr_map_and_free_names(server, &data->f_attr);
|
|
|
|
|
|
- if (o_arg->open_flags & O_CREAT) {
|
|
|
|
|
|
+ if (o_arg->open_flags & O_CREAT)
|
|
update_changeattr(dir, &o_res->cinfo);
|
|
update_changeattr(dir, &o_res->cinfo);
|
|
- nfs_post_op_update_inode(dir, o_res->dir_attr);
|
|
|
|
- } else
|
|
|
|
- nfs_refresh_inode(dir, o_res->dir_attr);
|
|
|
|
if ((o_res->rflags & NFS4_OPEN_RESULT_LOCKTYPE_POSIX) == 0)
|
|
if ((o_res->rflags & NFS4_OPEN_RESULT_LOCKTYPE_POSIX) == 0)
|
|
server->caps &= ~NFS_CAP_POSIX_LOCK;
|
|
server->caps &= ~NFS_CAP_POSIX_LOCK;
|
|
if(o_res->rflags & NFS4_OPEN_RESULT_CONFIRM) {
|
|
if(o_res->rflags & NFS4_OPEN_RESULT_CONFIRM) {
|