Removed remaining references to chmod, chown and utimens as part of setattr changes.

Removed references to chmod, chown and utimes. Removed utimes references in AFR and writebehind.

Signed-off-by: Anand V. Avati <avati@dev.gluster.com>

BUG: 146 (Add setattr FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=146
This commit is contained in:
Pavan Sondur 2009-10-05 09:45:52 +00:00 committed by Anand V. Avati
parent f3e46f2cb4
commit 29f81133a6
12 changed files with 58 additions and 910 deletions

View File

@ -198,194 +198,6 @@ out:
}
call_stub_t *
fop_chmod_stub (call_frame_t *frame,
fop_chmod_t fn,
loc_t *loc,
mode_t mode)
{
call_stub_t *stub = NULL;
GF_VALIDATE_OR_GOTO ("call-stub", frame, out);
GF_VALIDATE_OR_GOTO ("call-stub", loc, out);
stub = stub_new (frame, 1, GF_FOP_CHMOD);
GF_VALIDATE_OR_GOTO ("call-stub", stub, out);
stub->args.chmod.fn = fn;
loc_copy (&stub->args.chmod.loc, loc);
stub->args.chmod.mode = mode;
out:
return stub;
}
call_stub_t *
fop_chmod_cbk_stub (call_frame_t *frame,
fop_chmod_cbk_t fn,
int32_t op_ret,
int32_t op_errno,
struct stat *buf)
{
call_stub_t *stub = NULL;
GF_VALIDATE_OR_GOTO ("call-stub", frame, out);
stub = stub_new (frame, 0, GF_FOP_CHMOD);
GF_VALIDATE_OR_GOTO ("call-stub", stub, out);
stub->args.chmod_cbk.fn = fn;
stub->args.chmod_cbk.op_ret = op_ret;
stub->args.chmod_cbk.op_errno = op_errno;
if (buf)
stub->args.chmod_cbk.buf = *buf;
out:
return stub;
}
call_stub_t *
fop_fchmod_stub (call_frame_t *frame,
fop_fchmod_t fn,
fd_t *fd,
mode_t mode)
{
call_stub_t *stub = NULL;
GF_VALIDATE_OR_GOTO ("call-stub", frame, out);
stub = stub_new (frame, 1, GF_FOP_FCHMOD);
GF_VALIDATE_OR_GOTO ("call-stub", stub, out);
stub->args.fchmod.fn = fn;
if (fd)
stub->args.fchmod.fd = fd_ref (fd);
stub->args.fchmod.mode = mode;
out:
return stub;
}
call_stub_t *
fop_fchmod_cbk_stub (call_frame_t *frame,
fop_fchmod_cbk_t fn,
int32_t op_ret,
int32_t op_errno,
struct stat *buf)
{
call_stub_t *stub = NULL;
GF_VALIDATE_OR_GOTO ("call-stub", frame, out);
stub = stub_new (frame, 0, GF_FOP_FCHMOD);
GF_VALIDATE_OR_GOTO ("call-stub", stub, out);
stub->args.fchmod_cbk.fn = fn;
stub->args.fchmod_cbk.op_ret = op_ret;
stub->args.fchmod_cbk.op_errno = op_errno;
if (buf)
stub->args.fchmod_cbk.buf = *buf;
out:
return stub;
}
call_stub_t *
fop_chown_stub (call_frame_t *frame,
fop_chown_t fn,
loc_t *loc,
uid_t uid,
gid_t gid)
{
call_stub_t *stub = NULL;
GF_VALIDATE_OR_GOTO ("call-stub", frame, out);
GF_VALIDATE_OR_GOTO ("call-stub", loc, out);
stub = stub_new (frame, 1, GF_FOP_CHOWN);
GF_VALIDATE_OR_GOTO ("call-stub", stub, out);
stub->args.chown.fn = fn;
loc_copy (&stub->args.chown.loc, loc);
stub->args.chown.uid = uid;
stub->args.chown.gid = gid;
out:
return stub;
}
call_stub_t *
fop_chown_cbk_stub (call_frame_t *frame,
fop_chown_cbk_t fn,
int32_t op_ret,
int32_t op_errno,
struct stat *buf)
{
call_stub_t *stub = NULL;
GF_VALIDATE_OR_GOTO ("call-stub", frame, out);
stub = stub_new (frame, 0, GF_FOP_CHOWN);
GF_VALIDATE_OR_GOTO ("call-stub", stub, out);
stub->args.chown_cbk.fn = fn;
stub->args.chown_cbk.op_ret = op_ret;
stub->args.chown_cbk.op_errno = op_errno;
if (buf)
stub->args.chown_cbk.buf = *buf;
out:
return stub;
}
call_stub_t *
fop_fchown_stub (call_frame_t *frame,
fop_fchown_t fn,
fd_t *fd,
uid_t uid,
gid_t gid)
{
call_stub_t *stub = NULL;
GF_VALIDATE_OR_GOTO ("call-stub", frame, out);
stub = stub_new (frame, 1, GF_FOP_FCHOWN);
GF_VALIDATE_OR_GOTO ("call-stub", stub, out);
stub->args.fchown.fn = fn;
if (fd)
stub->args.fchown.fd = fd_ref (fd);
stub->args.fchown.uid = uid;
stub->args.fchown.gid = gid;
out:
return stub;
}
call_stub_t *
fop_fchown_cbk_stub (call_frame_t *frame,
fop_fchown_cbk_t fn,
int32_t op_ret,
int32_t op_errno,
struct stat *buf)
{
call_stub_t *stub = NULL;
GF_VALIDATE_OR_GOTO ("call-stub", frame, out);
stub = stub_new (frame, 0, GF_FOP_FCHOWN);
GF_VALIDATE_OR_GOTO ("call-stub", stub, out);
stub->args.fchown_cbk.fn = fn;
stub->args.fchown_cbk.op_ret = op_ret;
stub->args.fchown_cbk.op_errno = op_errno;
if (buf)
stub->args.fchown_cbk.buf = *buf;
out:
return stub;
}
/* truncate */
call_stub_t *
@ -487,53 +299,6 @@ out:
}
call_stub_t *
fop_utimens_stub (call_frame_t *frame,
fop_utimens_t fn,
loc_t *loc,
struct timespec tv[2])
{
call_stub_t *stub = NULL;
GF_VALIDATE_OR_GOTO ("call-stub", frame, out);
GF_VALIDATE_OR_GOTO ("call-stub", loc, out);
stub = stub_new (frame, 1, GF_FOP_UTIMENS);
GF_VALIDATE_OR_GOTO ("call-stub", stub, out);
stub->args.utimens.fn = fn;
loc_copy (&stub->args.utimens.loc, loc);
stub->args.utimens.tv[0] = tv[0];
stub->args.utimens.tv[1] = tv[1];
out:
return stub;
}
call_stub_t *
fop_utimens_cbk_stub (call_frame_t *frame,
fop_utimens_cbk_t fn,
int32_t op_ret,
int32_t op_errno,
struct stat *buf)
{
call_stub_t *stub = NULL;
GF_VALIDATE_OR_GOTO ("call-stub", frame, out);
stub = stub_new (frame, 0, GF_FOP_UTIMENS);
GF_VALIDATE_OR_GOTO ("call-stub", stub, out);
stub->args.utimens_cbk.fn = fn;
stub->args.utimens_cbk.op_ret = op_ret;
stub->args.utimens_cbk.op_errno = op_errno;
if (buf)
stub->args.utimens_cbk.buf = *buf;
out:
return stub;
}
call_stub_t *
fop_access_stub (call_frame_t *frame,
fop_access_t fn,
@ -2688,24 +2453,6 @@ call_resume_wind (call_stub_t *stub)
}
break;
case GF_FOP_CHMOD:
{
stub->args.chmod.fn (stub->frame,
stub->frame->this,
&stub->args.chmod.loc,
stub->args.chmod.mode);
}
break;
case GF_FOP_CHOWN:
{
stub->args.chown.fn (stub->frame,
stub->frame->this,
&stub->args.chown.loc,
stub->args.chown.uid,
stub->args.chown.gid);
break;
}
case GF_FOP_TRUNCATE:
{
stub->args.truncate.fn (stub->frame,
@ -2919,35 +2666,7 @@ call_resume_wind (call_stub_t *stub)
break;
}
case GF_FOP_UTIMENS:
{
stub->args.utimens.fn (stub->frame,
stub->frame->this,
&stub->args.utimens.loc,
stub->args.utimens.tv);
break;
}
break;
case GF_FOP_FCHMOD:
{
stub->args.fchmod.fn (stub->frame,
stub->frame->this,
stub->args.fchmod.fd,
stub->args.fchmod.mode);
break;
}
case GF_FOP_FCHOWN:
{
stub->args.fchown.fn (stub->frame,
stub->frame->this,
stub->args.fchown.fd,
stub->args.fchown.uid,
stub->args.fchown.gid);
break;
}
case GF_FOP_LOOKUP:
{
@ -3322,40 +3041,6 @@ call_resume_unwind (call_stub_t *stub)
break;
}
case GF_FOP_CHMOD:
{
if (!stub->args.chmod_cbk.fn)
STACK_UNWIND (stub->frame,
stub->args.chmod_cbk.op_ret,
stub->args.chmod_cbk.op_errno,
&stub->args.chmod_cbk.buf);
else
stub->args.chmod_cbk.fn (stub->frame,
stub->frame->cookie,
stub->frame->this,
stub->args.chmod_cbk.op_ret,
stub->args.chmod_cbk.op_errno,
&stub->args.chmod_cbk.buf);
break;
}
case GF_FOP_CHOWN:
{
if (!stub->args.chown_cbk.fn)
STACK_UNWIND (stub->frame,
stub->args.chown_cbk.op_ret,
stub->args.chown_cbk.op_errno,
&stub->args.chown_cbk.buf);
else
stub->args.chown_cbk.fn (stub->frame,
stub->frame->cookie,
stub->frame->this,
stub->args.chown_cbk.op_ret,
stub->args.chown_cbk.op_errno,
&stub->args.chown_cbk.buf);
break;
}
case GF_FOP_TRUNCATE:
{
if (!stub->args.truncate_cbk.fn)
@ -3738,60 +3423,6 @@ call_resume_unwind (call_stub_t *stub)
break;
}
case GF_FOP_UTIMENS:
{
if (!stub->args.utimens_cbk.fn)
STACK_UNWIND (stub->frame,
stub->args.utimens_cbk.op_ret,
stub->args.utimens_cbk.op_errno,
&stub->args.utimens_cbk.buf);
else
stub->args.utimens_cbk.fn (stub->frame,
stub->frame->cookie,
stub->frame->this,
stub->args.utimens_cbk.op_ret,
stub->args.utimens_cbk.op_errno,
&stub->args.utimens_cbk.buf);
break;
}
break;
case GF_FOP_FCHMOD:
{
if (!stub->args.fchmod_cbk.fn)
STACK_UNWIND (stub->frame,
stub->args.fchmod_cbk.op_ret,
stub->args.fchmod_cbk.op_errno,
&stub->args.fchmod_cbk.buf);
else
stub->args.fchmod_cbk.fn (stub->frame,
stub->frame->cookie,
stub->frame->this,
stub->args.fchmod_cbk.op_ret,
stub->args.fchmod_cbk.op_errno,
&stub->args.fchmod_cbk.buf);
break;
}
case GF_FOP_FCHOWN:
{
if (!stub->args.fchown_cbk.fn)
STACK_UNWIND (stub->frame,
stub->args.fchown_cbk.op_ret,
stub->args.fchown_cbk.op_errno,
&stub->args.fchown_cbk.buf);
else
stub->args.fchown_cbk.fn (stub->frame,
stub->frame->cookie,
stub->frame->this,
stub->args.fchown_cbk.op_ret,
stub->args.fchown_cbk.op_errno,
&stub->args.fchown_cbk.buf);
break;
}
case GF_FOP_LOOKUP:
{
if (!stub->args.lookup_cbk.fn)
@ -4118,17 +3749,6 @@ call_stub_destroy_wind (call_stub_t *stub)
}
break;
case GF_FOP_CHMOD:
{
loc_wipe (&stub->args.chmod.loc);
}
break;
case GF_FOP_CHOWN:
{
loc_wipe (&stub->args.chown.loc);
break;
}
case GF_FOP_TRUNCATE:
{
loc_wipe (&stub->args.truncate.loc);
@ -4299,25 +3919,6 @@ call_stub_destroy_wind (call_stub_t *stub)
fd_unref (stub->args.fentrylk.fd);
break;
}
case GF_FOP_UTIMENS:
{
loc_wipe (&stub->args.utimens.loc);
break;
}
break;
case GF_FOP_FCHMOD:
{
if (stub->args.fchmod.fd)
fd_unref (stub->args.fchmod.fd);
break;
}
case GF_FOP_FCHOWN:
{
if (stub->args.fchown.fd)
fd_unref (stub->args.fchown.fd);
break;
}
case GF_FOP_LOOKUP:
{
@ -4485,12 +4086,6 @@ call_stub_destroy_unwind (call_stub_t *stub)
}
break;
case GF_FOP_CHMOD:
break;
case GF_FOP_CHOWN:
break;
case GF_FOP_TRUNCATE:
break;
@ -4592,15 +4187,6 @@ call_stub_destroy_unwind (call_stub_t *stub)
case GF_FOP_FENTRYLK:
break;
case GF_FOP_UTIMENS:
break;
case GF_FOP_FCHMOD:
break;
case GF_FOP_FCHOWN:
break;
case GF_FOP_LOOKUP:
{
if (stub->args.lookup_cbk.inode)

View File

@ -73,56 +73,6 @@ typedef struct {
struct stat buf;
} fstat_cbk;
/* chmod */
struct {
fop_chmod_t fn;
loc_t loc;
mode_t mode;
} chmod;
struct {
fop_chmod_cbk_t fn;
int32_t op_ret, op_errno;
struct stat buf;
} chmod_cbk;
/* fchmod */
struct {
fop_fchmod_t fn;
fd_t *fd;
mode_t mode;
} fchmod;
struct {
fop_fchmod_cbk_t fn;
int32_t op_ret, op_errno;
struct stat buf;
} fchmod_cbk;
/* chown */
struct {
fop_chown_t fn;
loc_t loc;
uid_t uid;
gid_t gid;
} chown;
struct {
fop_chown_cbk_t fn;
int32_t op_ret, op_errno;
struct stat buf;
} chown_cbk;
/* fchown */
struct {
fop_fchown_t fn;
fd_t *fd;
uid_t uid;
gid_t gid;
} fchown;
struct {
fop_fchown_cbk_t fn;
int32_t op_ret, op_errno;
struct stat buf;
} fchown_cbk;
/* truncate */
struct {
fop_truncate_t fn;
@ -149,18 +99,6 @@ typedef struct {
struct stat postbuf;
} ftruncate_cbk;
/* utimens */
struct {
fop_utimens_t fn;
loc_t loc;
struct timespec tv[2];
} utimens;
struct {
fop_utimens_cbk_t fn;
int32_t op_ret, op_errno;
struct stat buf;
} utimens_cbk;
/* access */
struct {
fop_access_t fn;
@ -739,55 +677,6 @@ fop_fstat_cbk_stub (call_frame_t *frame,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
call_stub_t *
fop_chmod_stub (call_frame_t *frame,
fop_chmod_t fn,
loc_t *loc,
mode_t mode);
call_stub_t *
fop_chmod_cbk_stub (call_frame_t *frame,
fop_chmod_cbk_t fn,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
call_stub_t *
fop_fchmod_stub (call_frame_t *frame,
fop_fchmod_t fn,
fd_t *fd,
mode_t mode);
call_stub_t *
fop_fchmod_cbk_stub (call_frame_t *frame,
fop_fchmod_cbk_t fn,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
call_stub_t *
fop_chown_stub (call_frame_t *frame,
fop_chown_t fn,
loc_t *loc,
uid_t uid,
gid_t gid);
call_stub_t *
fop_chown_cbk_stub (call_frame_t *frame,
fop_chown_cbk_t fn,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
call_stub_t *
fop_fchown_stub (call_frame_t *frame,
fop_fchown_t fn,
fd_t *fd,
uid_t uid,
gid_t gid);
call_stub_t *
fop_fchown_cbk_stub (call_frame_t *frame,
fop_fchown_cbk_t fn,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
call_stub_t *
fop_truncate_stub (call_frame_t *frame,
@ -817,19 +706,6 @@ fop_ftruncate_cbk_stub (call_frame_t *frame,
struct stat *prebuf,
struct stat *postbuf);
call_stub_t *
fop_utimens_stub (call_frame_t *frame,
fop_utimens_t fn,
loc_t *loc,
struct timespec tv[2]);
call_stub_t *
fop_utimens_cbk_stub (call_frame_t *frame,
fop_utimens_cbk_t fn,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
call_stub_t *
fop_access_stub (call_frame_t *frame,
fop_access_t fn,

View File

@ -179,37 +179,32 @@ gf_global_variable_init()
gf_fop_list[GF_FOP_SYMLINK] = "SYMLINK";
gf_fop_list[GF_FOP_RENAME] = "RENAME";
gf_fop_list[GF_FOP_LINK] = "LINK";
gf_fop_list[GF_FOP_CHMOD] = "CHMOD";
gf_fop_list[GF_FOP_CHOWN] = "CHOWN"; /* 10 */
gf_fop_list[GF_FOP_TRUNCATE] = "TRUNCATE";
gf_fop_list[GF_FOP_OPEN] = "OPEN";
gf_fop_list[GF_FOP_OPEN] = "OPEN"; /* 10 */
gf_fop_list[GF_FOP_READ] = "READ";
gf_fop_list[GF_FOP_WRITE] = "WRITE";
gf_fop_list[GF_FOP_STATFS] = "STATFS"; /* 15 */
gf_fop_list[GF_FOP_STATFS] = "STATFS";
gf_fop_list[GF_FOP_FLUSH] = "FLUSH";
gf_fop_list[GF_FOP_FSYNC] = "FSYNC";
gf_fop_list[GF_FOP_FSYNC] = "FSYNC"; /* 15 */
gf_fop_list[GF_FOP_SETXATTR] = "SETXATTR";
gf_fop_list[GF_FOP_GETXATTR] = "GETXATTR"; /* 20 */
gf_fop_list[GF_FOP_GETXATTR] = "GETXATTR";
gf_fop_list[GF_FOP_REMOVEXATTR] = "REMOVEXATTR";
gf_fop_list[GF_FOP_OPENDIR] = "OPENDIR";
gf_fop_list[GF_FOP_GETDENTS] = "GETDENTS";
gf_fop_list[GF_FOP_FSYNCDIR] = "FSYNCDIR"; /* 25 */
gf_fop_list[GF_FOP_GETDENTS] = "GETDENTS"; /* 20 */
gf_fop_list[GF_FOP_FSYNCDIR] = "FSYNCDIR";
gf_fop_list[GF_FOP_ACCESS] = "ACCESS";
gf_fop_list[GF_FOP_CREATE] = "CREATE";
gf_fop_list[GF_FOP_FTRUNCATE] = "FTRUNCATE";
gf_fop_list[GF_FOP_FSTAT] = "FSTAT";
gf_fop_list[GF_FOP_LK] = "LK"; /* 30 */
gf_fop_list[GF_FOP_UTIMENS] = "UTIMENS";
gf_fop_list[GF_FOP_FCHMOD] = "FCHMOD";
gf_fop_list[GF_FOP_FCHOWN] = "FCHOWN";
gf_fop_list[GF_FOP_FSTAT] = "FSTAT"; /* 25 */
gf_fop_list[GF_FOP_LK] = "LK";
gf_fop_list[GF_FOP_LOOKUP] = "LOOKUP";
gf_fop_list[GF_FOP_SETDENTS] = "SETDENTS"; /* 35 */
gf_fop_list[GF_FOP_SETDENTS] = "SETDENTS";
gf_fop_list[GF_FOP_READDIR] = "READDIR";
gf_fop_list[GF_FOP_INODELK] = "INODELK";
gf_fop_list[GF_FOP_INODELK] = "INODELK"; /* 30 */
gf_fop_list[GF_FOP_FINODELK] = "FINODELK";
gf_fop_list[GF_FOP_ENTRYLK] = "ENTRYLK";
gf_fop_list[GF_FOP_FENTRYLK] = "FENTRYLK"; /* 40 */
gf_fop_list[GF_FOP_CHECKSUM] = "CHECKSUM"; /* 41 */
gf_fop_list[GF_FOP_FENTRYLK] = "FENTRYLK"; /* 35 */
gf_fop_list[GF_FOP_CHECKSUM] = "CHECKSUM"; /* 36 */
gf_fop_list[GF_FOP_XATTROP] = "XATTROP";
gf_fop_list[GF_FOP_FXATTROP] = "FXATTROP";
gf_fop_list[GF_FOP_LOCK_NOTIFY] = "LOCK_NOTIFY";

View File

@ -105,131 +105,6 @@ default_stat (call_frame_t *frame,
return 0;
}
static int32_t
default_chmod_cbk (call_frame_t *frame,
void *cookie,
xlator_t *this,
int32_t op_ret,
int32_t op_errno,
struct stat *buf)
{
STACK_UNWIND (frame,
op_ret,
op_errno,
buf);
return 0;
}
int32_t
default_chmod (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
mode_t mode)
{
STACK_WIND (frame,
default_chmod_cbk,
FIRST_CHILD(this),
FIRST_CHILD(this)->fops->chmod,
loc,
mode);
return 0;
}
static int32_t
default_fchmod_cbk (call_frame_t *frame,
void *cookie,
xlator_t *this,
int32_t op_ret,
int32_t op_errno,
struct stat *buf)
{
STACK_UNWIND (frame,
op_ret,
op_errno,
buf);
return 0;
}
int32_t
default_fchmod (call_frame_t *frame,
xlator_t *this,
fd_t *fd,
mode_t mode)
{
STACK_WIND (frame,
default_fchmod_cbk,
FIRST_CHILD(this),
FIRST_CHILD(this)->fops->fchmod,
fd,
mode);
return 0;
}
static int32_t
default_chown_cbk (call_frame_t *frame,
void *cookie,
xlator_t *this,
int32_t op_ret,
int32_t op_errno,
struct stat *buf)
{
STACK_UNWIND (frame,
op_ret,
op_errno,
buf);
return 0;
}
int32_t
default_chown (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
uid_t uid,
gid_t gid)
{
STACK_WIND (frame,
default_chown_cbk,
FIRST_CHILD(this),
FIRST_CHILD(this)->fops->chown,
loc,
uid,
gid);
return 0;
}
static int32_t
default_fchown_cbk (call_frame_t *frame,
void *cookie,
xlator_t *this,
int32_t op_ret,
int32_t op_errno,
struct stat *buf)
{
STACK_UNWIND (frame,
op_ret,
op_errno,
buf);
return 0;
}
int32_t
default_fchown (call_frame_t *frame,
xlator_t *this,
fd_t *fd,
uid_t uid,
gid_t gid)
{
STACK_WIND (frame,
default_fchown_cbk,
FIRST_CHILD(this),
FIRST_CHILD(this)->fops->fchown,
fd,
uid,
gid);
return 0;
}
static int32_t
default_truncate_cbk (call_frame_t *frame,
void *cookie,
@ -294,37 +169,6 @@ default_ftruncate (call_frame_t *frame,
return 0;
}
int32_t
default_utimens_cbk (call_frame_t *frame,
void *cookie,
xlator_t *this,
int32_t op_ret,
int32_t op_errno,
struct stat *buf)
{
STACK_UNWIND (frame,
op_ret,
op_errno,
buf);
return 0;
}
int32_t
default_utimens (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
struct timespec tv[2])
{
STACK_WIND (frame,
default_utimens_cbk,
FIRST_CHILD(this),
FIRST_CHILD(this)->fops->utimens,
loc,
tv);
return 0;
}
static int32_t
default_access_cbk (call_frame_t *frame,
void *cookie,

View File

@ -71,28 +71,6 @@ int32_t default_fstat (call_frame_t *frame,
xlator_t *this,
fd_t *fd);
int32_t default_chmod (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
mode_t mode);
int32_t default_fchmod (call_frame_t *frame,
xlator_t *this,
fd_t *fd,
mode_t mode);
int32_t default_chown (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
uid_t uid,
gid_t gid);
int32_t default_fchown (call_frame_t *frame,
xlator_t *this,
fd_t *fd,
uid_t uid,
gid_t gid);
int32_t default_truncate (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
@ -103,11 +81,6 @@ int32_t default_ftruncate (call_frame_t *frame,
fd_t *fd,
off_t offset);
int32_t default_utimens (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
struct timespec tv[2]);
int32_t default_access (call_frame_t *frame,
xlator_t *this,
loc_t *loc,

View File

@ -86,10 +86,8 @@ typedef enum {
GF_FOP_SYMLINK,
GF_FOP_RENAME,
GF_FOP_LINK,
GF_FOP_CHMOD,
GF_FOP_CHOWN, /* 10 */
GF_FOP_TRUNCATE,
GF_FOP_OPEN,
GF_FOP_OPEN, /* 10 */
GF_FOP_READ,
GF_FOP_WRITE,
GF_FOP_STATFS, /* 15 */
@ -106,9 +104,6 @@ typedef enum {
GF_FOP_FTRUNCATE,
GF_FOP_FSTAT,
GF_FOP_LK,
GF_FOP_UTIMENS,
GF_FOP_FCHMOD, /* 30 */
GF_FOP_FCHOWN,
GF_FOP_LOOKUP,
GF_FOP_SETDENTS,
GF_FOP_READDIR,

View File

@ -54,7 +54,7 @@ struct gf_stat {
uint32_t blksize;
uint32_t atime;
uint32_t atime_nsec;
uint32_t mtime;
uint32_t mtime ;
uint32_t mtime_nsec;
uint32_t ctime;
uint32_t ctime_nsec;
@ -434,28 +434,6 @@ typedef struct {
struct gf_stat postparent;
} __attribute__((packed)) gf_fop_link_rsp_t;
typedef struct {
uint64_t ino;
uint32_t mode;
char path[0];
} __attribute__((packed)) gf_fop_chmod_req_t;
typedef struct {
struct gf_stat stat;
} __attribute__((packed)) gf_fop_chmod_rsp_t;
typedef struct {
uint64_t ino;
uint32_t uid;
uint32_t gid;
char path[0];
} __attribute__((packed)) gf_fop_chown_req_t;
typedef struct {
struct gf_stat stat;
} __attribute__((packed)) gf_fop_chown_rsp_t;
typedef struct {
uint64_t ino;
uint64_t offset;
@ -753,36 +731,6 @@ typedef struct {
typedef struct {
} __attribute__((packed)) gf_fop_fentrylk_rsp_t;
typedef struct {
uint64_t ino;
struct gf_timespec tv[2];
char path[0];
} __attribute__((packed)) gf_fop_utimens_req_t;
typedef struct {
struct gf_stat stat;
} __attribute__((packed)) gf_fop_utimens_rsp_t;
typedef struct {
uint64_t ino;
uint64_t fd;
uint32_t mode;
} __attribute__((packed)) gf_fop_fchmod_req_t;
typedef struct {
struct gf_stat stat;
} __attribute__((packed)) gf_fop_fchmod_rsp_t;
typedef struct {
uint64_t ino;
int64_t fd;
uint32_t uid;
uint32_t gid;
} __attribute__((packed)) gf_fop_fchown_req_t;
typedef struct {
struct gf_stat stat;
} __attribute__((packed)) gf_fop_fchown_rsp_t;
typedef struct {
uint64_t ino; /* NOTE: used only in case of 'root' lookup */
uint64_t par;

View File

@ -66,10 +66,7 @@ fill_defaults (xlator_t *xl)
SET_DEFAULT_FOP (symlink);
SET_DEFAULT_FOP (rename);
SET_DEFAULT_FOP (link);
SET_DEFAULT_FOP (chmod);
SET_DEFAULT_FOP (chown);
SET_DEFAULT_FOP (truncate);
SET_DEFAULT_FOP (utimens);
SET_DEFAULT_FOP (readv);
SET_DEFAULT_FOP (writev);
SET_DEFAULT_FOP (statfs);
@ -93,8 +90,6 @@ fill_defaults (xlator_t *xl)
SET_DEFAULT_FOP (entrylk);
SET_DEFAULT_FOP (fentrylk);
SET_DEFAULT_FOP (lookup);
SET_DEFAULT_FOP (fchown);
SET_DEFAULT_FOP (fchmod);
SET_DEFAULT_FOP (setdents);
SET_DEFAULT_FOP (getdents);
SET_DEFAULT_FOP (checksum);

View File

@ -189,34 +189,6 @@ typedef int32_t (*fop_fstat_cbk_t) (call_frame_t *frame,
int32_t op_errno,
struct stat *buf);
typedef int32_t (*fop_chmod_cbk_t) (call_frame_t *frame,
void *cookie,
xlator_t *this,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
typedef int32_t (*fop_fchmod_cbk_t) (call_frame_t *frame,
void *cookie,
xlator_t *this,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
typedef int32_t (*fop_chown_cbk_t) (call_frame_t *frame,
void *cookie,
xlator_t *this,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
typedef int32_t (*fop_fchown_cbk_t) (call_frame_t *frame,
void *cookie,
xlator_t *this,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
typedef int32_t (*fop_truncate_cbk_t) (call_frame_t *frame,
void *cookie,
xlator_t *this,
@ -233,13 +205,6 @@ typedef int32_t (*fop_ftruncate_cbk_t) (call_frame_t *frame,
struct stat *prebuf,
struct stat *postbuf);
typedef int32_t (*fop_utimens_cbk_t) (call_frame_t *frame,
void *cookie,
xlator_t *this,
int32_t op_ret,
int32_t op_errno,
struct stat *buf);
typedef int32_t (*fop_access_cbk_t) (call_frame_t *frame,
void *cookie,
xlator_t *this,
@ -537,28 +502,6 @@ typedef int32_t (*fop_fstat_t) (call_frame_t *frame,
xlator_t *this,
fd_t *fd);
typedef int32_t (*fop_chmod_t) (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
mode_t mode);
typedef int32_t (*fop_fchmod_t) (call_frame_t *frame,
xlator_t *this,
fd_t *fd,
mode_t mode);
typedef int32_t (*fop_chown_t) (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
uid_t uid,
gid_t gid);
typedef int32_t (*fop_fchown_t) (call_frame_t *frame,
xlator_t *this,
fd_t *fd,
uid_t uid,
gid_t gid);
typedef int32_t (*fop_truncate_t) (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
@ -569,11 +512,6 @@ typedef int32_t (*fop_ftruncate_t) (call_frame_t *frame,
fd_t *fd,
off_t offset);
typedef int32_t (*fop_utimens_t) (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
struct timespec tv[2]);
typedef int32_t (*fop_access_t) (call_frame_t *frame,
xlator_t *this,
loc_t *loc,
@ -800,13 +738,8 @@ struct xlator_fops {
fop_lookup_t lookup;
fop_stat_t stat;
fop_fstat_t fstat;
fop_chmod_t chmod;
fop_fchmod_t fchmod;
fop_chown_t chown;
fop_fchown_t fchown;
fop_truncate_t truncate;
fop_ftruncate_t ftruncate;
fop_utimens_t utimens;
fop_access_t access;
fop_readlink_t readlink;
fop_mknod_t mknod;
@ -852,13 +785,8 @@ struct xlator_fops {
fop_lookup_cbk_t lookup_cbk;
fop_stat_cbk_t stat_cbk;
fop_fstat_cbk_t fstat_cbk;
fop_chmod_cbk_t chmod_cbk;
fop_fchmod_cbk_t fchmod_cbk;
fop_chown_cbk_t chown_cbk;
fop_fchown_cbk_t fchown_cbk;
fop_truncate_cbk_t truncate_cbk;
fop_ftruncate_cbk_t ftruncate_cbk;
fop_utimens_cbk_t utimens_cbk;
fop_access_cbk_t access_cbk;
fop_readlink_cbk_t readlink_cbk;
fop_mknod_cbk_t mknod_cbk;

View File

@ -106,8 +106,8 @@ afr_sh_data_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int
afr_sh_data_utimes_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno, struct stat *buf)
afr_sh_data_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno, struct stat *statpre, struct stat *statpost)
{
afr_sh_data_flush_cbk (frame, cookie, this, op_ret, op_errno);
@ -126,8 +126,9 @@ afr_sh_data_close (call_frame_t *frame, xlator_t *this)
int call_count = 0;
int source = 0;
int active_sinks = 0;
int32_t valid = 0;
struct timespec ts[2];
struct stat stbuf = {0,};
local = frame->local;
sh = &local->self_heal;
@ -136,16 +137,18 @@ afr_sh_data_close (call_frame_t *frame, xlator_t *this)
source = sh->source;
active_sinks = sh->active_sinks;
valid |= (GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME);
#ifdef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
ts[0] = sh->buf[source].st_atim;
ts[1] = sh->buf[source].st_mtim;
stbuf.st_atim = sh->buf[source].st_atim;
stbuf.st_mtim = sh->buf[source].st_mtim;
#elif HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
ts[0] = sh->buf[source].st_atimespec;
ts[1] = sh->buf[source].st_mtimespec;
stbuf.st_atimespec = sh->buf[source].st_atimespec;
stbuf.st_mtimespec = sh->buf[source].st_mtimespec;
#else
ts[0].tv_sec = sh->buf[source].st_atime;
ts[1].tv_sec = sh->buf[source].st_mtime;
stbuf.st_atime = sh->buf[source].st_atime;
stbuf.st_mtime = sh->buf[source].st_mtime;
#endif
if (!sh->healing_fd) {
@ -168,11 +171,11 @@ afr_sh_data_close (call_frame_t *frame, xlator_t *this)
sh->healing_fd);
call_count--;
STACK_WIND_COOKIE (frame, afr_sh_data_utimes_cbk,
STACK_WIND_COOKIE (frame, afr_sh_data_setattr_cbk,
(void *) (long) sh->source,
priv->children[sh->source],
priv->children[sh->source]->fops->utimens,
&local->loc, ts);
priv->children[sh->source]->fops->setattr,
&local->loc, &stbuf, valid);
call_count--;
@ -192,11 +195,11 @@ afr_sh_data_close (call_frame_t *frame, xlator_t *this)
call_count--;
STACK_WIND_COOKIE (frame, afr_sh_data_utimes_cbk,
STACK_WIND_COOKIE (frame, afr_sh_data_setattr_cbk,
(void *) (long) i,
priv->children[i],
priv->children[i]->fops->utimens,
&local->loc, ts);
priv->children[i]->fops->setattr,
&local->loc, &stbuf, valid);
if (!--call_count)
break;

View File

@ -2596,14 +2596,9 @@ struct xlator_fops fops = {
.readv = afr_readv,
/* inode write */
.chmod = afr_chmod,
.chown = afr_chown,
.fchmod = afr_fchmod,
.fchown = afr_fchown,
.writev = afr_writev,
.truncate = afr_truncate,
.ftruncate = afr_ftruncate,
.utimens = afr_utimens,
.setxattr = afr_setxattr,
.setattr = afr_setattr,
.fsetattr = afr_fsetattr,

View File

@ -1040,8 +1040,8 @@ unwind:
int32_t
wb_utimens_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno, struct stat *buf)
wb_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno, struct stat *statpre, struct stat *statpost)
{
wb_local_t *local = NULL;
wb_request_t *request = NULL;
@ -1062,7 +1062,7 @@ wb_utimens_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
}
}
STACK_UNWIND (frame, op_ret, op_errno, buf);
STACK_UNWIND (frame, op_ret, op_errno, statpre, statpost);
if (request) {
wb_request_unref (request);
@ -1097,23 +1097,24 @@ wb_utimens_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
static int32_t
wb_utimens_helper (call_frame_t *frame, xlator_t *this, loc_t *loc,
struct timespec tv[2])
wb_setattr_helper (call_frame_t *frame, xlator_t *this, loc_t *loc,
struct stat *stbuf, int32_t valid)
{
STACK_WIND (frame,
wb_utimens_cbk,
wb_setattr_cbk,
FIRST_CHILD(this),
FIRST_CHILD(this)->fops->utimens,
FIRST_CHILD(this)->fops->setattr,
loc,
tv);
stbuf,
valid);
return 0;
}
int32_t
wb_utimens (call_frame_t *frame, xlator_t *this, loc_t *loc,
struct timespec tv[2])
wb_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
struct stat *stbuf, int32_t valid)
{
wb_file_t *file = NULL;
fd_t *iter_fd = NULL;
@ -1123,6 +1124,15 @@ wb_utimens (call_frame_t *frame, xlator_t *this, loc_t *loc,
wb_request_t *request = NULL;
int32_t ret = -1, op_errno = EINVAL;
if (!(valid & (GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME))) {
STACK_WIND (frame,
wb_setattr_cbk,
FIRST_CHILD (this),
FIRST_CHILD (this)->fops->setattr,
loc, stbuf, valid);
goto out;
}
if (loc->inode) {
/*
FIXME: fd_lookup extends life of fd till the execution
@ -1150,7 +1160,7 @@ wb_utimens (call_frame_t *frame, xlator_t *this, loc_t *loc,
frame->local = local;
if (file) {
stub = fop_utimens_stub (frame, wb_utimens_helper, loc, tv);
stub = fop_setattr_stub (frame, wb_setattr_helper, loc, stbuf, valid);
if (stub == NULL) {
op_errno = ENOMEM;
goto unwind;
@ -1169,11 +1179,11 @@ wb_utimens (call_frame_t *frame, xlator_t *this, loc_t *loc,
}
} else {
STACK_WIND (frame,
wb_utimens_cbk,
wb_setattr_cbk,
FIRST_CHILD(this),
FIRST_CHILD(this)->fops->utimens,
FIRST_CHILD(this)->fops->setattr,
loc,
tv);
stbuf, valid);
}
return 0;
@ -1183,7 +1193,7 @@ unwind:
if (stub) {
call_stub_destroy (stub);
}
out:
return 0;
}
@ -2482,7 +2492,7 @@ struct xlator_fops fops = {
.fstat = wb_fstat,
.truncate = wb_truncate,
.ftruncate = wb_ftruncate,
.utimens = wb_utimens,
.setattr = wb_setattr,
};
struct xlator_mops mops = {