summaryrefslogtreecommitdiffstats
path: root/xlators/nfs/server/src/nfs-fops.c
diff options
context:
space:
mode:
authorShehjar Tikoo <shehjart@gluster.com>2010-08-31 06:50:36 +0000
committerVijay Bellur <vijay@dev.gluster.com>2010-08-31 07:45:04 -0700
commit73c0aa4c27c50beea25be8de0b27b078dfcfa724 (patch)
tree40290c1d44037b5d89191eee9ed876a7ff712c72 /xlators/nfs/server/src/nfs-fops.c
parentd6f9504e01d444d625c24a5c2dcc5c7684c159d6 (diff)
nfs: Create frames with frame->root as nfsx
frame root was being set to the subvol on which the fop was to be performed. Apart from just being totally wrong behaviour, this also messes up mem-accouting because there THIS points to the wrong xlator resulting in crap addresses being dereferenced through the mem type index. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1410 (nfs uses this for child translator during frame creation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1410
Diffstat (limited to 'xlators/nfs/server/src/nfs-fops.c')
-rw-r--r--xlators/nfs/server/src/nfs-fops.c116
1 files changed, 58 insertions, 58 deletions
diff --git a/xlators/nfs/server/src/nfs-fops.c b/xlators/nfs/server/src/nfs-fops.c
index bfcfb43d1..b5ff93782 100644
--- a/xlators/nfs/server/src/nfs-fops.c
+++ b/xlators/nfs/server/src/nfs-fops.c
@@ -278,12 +278,12 @@ nfs_fop_lookup (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *loc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Lookup: %s", loc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, loc);
- STACK_WIND_COOKIE (frame, nfs_fop_lookup_cbk, nfsx, xl,
- xl->fops->lookup, loc, NULL);
+ STACK_WIND_COOKIE (frame, nfs_fop_lookup_cbk, xl, xl,
+ xl->fops->lookup, loc, NULL);
ret = 0;
err:
@@ -325,12 +325,12 @@ nfs_fop_stat (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *loc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Stat: %s", loc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, loc);
- STACK_WIND_COOKIE (frame, nfs_fop_stat_cbk, nfsx, xl, xl->fops->stat,
- loc);
+ STACK_WIND_COOKIE (frame, nfs_fop_stat_cbk, xl, xl, xl->fops->stat,
+ loc);
ret = 0;
err:
if (ret < 0) {
@@ -371,12 +371,12 @@ nfs_fop_fstat (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, fd_t *fd,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "FStat");
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_fd_ino (nfl, fd);
- STACK_WIND_COOKIE (frame, nfs_fop_fstat_cbk, nfsx, xl, xl->fops->fstat,
- fd);
+ STACK_WIND_COOKIE (frame, nfs_fop_fstat_cbk, xl, xl, xl->fops->fstat,
+ fd);
ret = 0;
err:
@@ -416,10 +416,10 @@ nfs_fop_opendir (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Opendir: %s", pathloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
- STACK_WIND_COOKIE (frame, nfs_fop_opendir_cbk, nfsx, xl,
+ STACK_WIND_COOKIE (frame, nfs_fop_opendir_cbk, xl, xl,
xl->fops->opendir, pathloc, dirfd);
ret = 0;
@@ -459,10 +459,10 @@ nfs_fop_flush (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, fd_t *fd,
if ((!nfsx) || (!xl) || (!fd) || (!nfu))
return ret;
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
- STACK_WIND_COOKIE (frame, nfs_fop_flush_cbk, nfsx, xl, xl->fops->flush,
+ STACK_WIND_COOKIE (frame, nfs_fop_flush_cbk, xl, xl, xl->fops->flush,
fd);
ret = 0;
err:
@@ -505,10 +505,10 @@ nfs_fop_readdirp (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, fd_t *dirfd,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "readdir");
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
- STACK_WIND_COOKIE (frame, nfs_fop_readdirp_cbk, nfsx, xl,
+ STACK_WIND_COOKIE (frame, nfs_fop_readdirp_cbk, xl, xl,
xl->fops->readdirp, dirfd, bufsize, offset);
ret = 0;
@@ -551,11 +551,11 @@ nfs_fop_statfs (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Statfs: %s", pathloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
- STACK_WIND_COOKIE (frame, nfs_fop_statfs_cbk, nfsx, xl,
- xl->fops->statfs, pathloc);
+ STACK_WIND_COOKIE (frame, nfs_fop_statfs_cbk, xl, xl,
+ xl->fops->statfs, pathloc);
ret = 0;
err:
if (ret < 0) {
@@ -600,12 +600,12 @@ nfs_fop_create (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Create: %s", pathloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, pathloc);
- STACK_WIND_COOKIE (frame, nfs_fop_create_cbk, nfsx, xl,xl->fops->create
- , pathloc, flags, mode, fd);
+ STACK_WIND_COOKIE (frame, nfs_fop_create_cbk, xl, xl,xl->fops->create
+ , pathloc, flags, mode, fd);
ret = 0;
err:
if (ret < 0) {
@@ -648,11 +648,11 @@ nfs_fop_setattr (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Setattr: %s", pathloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, pathloc);
- STACK_WIND_COOKIE (frame, nfs_fop_setattr_cbk, nfsx, xl,
+ STACK_WIND_COOKIE (frame, nfs_fop_setattr_cbk, xl, xl,
xl->fops->setattr, pathloc, buf, valid);
ret = 0;
err:
@@ -696,12 +696,12 @@ nfs_fop_mkdir (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Mkdir: %s", pathloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, pathloc);
- STACK_WIND_COOKIE (frame, nfs_fop_mkdir_cbk, nfsx, xl, xl->fops->mkdir,
- pathloc, mode);
+ STACK_WIND_COOKIE (frame, nfs_fop_mkdir_cbk, xl, xl, xl->fops->mkdir,
+ pathloc, mode);
ret = 0;
err:
if (ret < 0) {
@@ -743,12 +743,12 @@ nfs_fop_symlink (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, char *target,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Symlink: %s", pathloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, pathloc);
- STACK_WIND_COOKIE (frame, nfs_fop_symlink_cbk, nfsx, xl,
- xl->fops->symlink, target, pathloc);
+ STACK_WIND_COOKIE (frame, nfs_fop_symlink_cbk, xl, xl,
+ xl->fops->symlink, target, pathloc);
ret = 0;
err:
if (ret < 0) {
@@ -789,12 +789,12 @@ nfs_fop_readlink (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Readlink: %s", pathloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, pathloc);
- STACK_WIND_COOKIE (frame, nfs_fop_readlink_cbk, nfsx, xl,
- xl->fops->readlink, pathloc, size);
+ STACK_WIND_COOKIE (frame, nfs_fop_readlink_cbk, xl, xl,
+ xl->fops->readlink, pathloc, size);
ret = 0;
err:
if (ret < 0) {
@@ -837,12 +837,12 @@ nfs_fop_mknod (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Mknod: %s", pathloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, pathloc);
- STACK_WIND_COOKIE (frame, nfs_fop_mknod_cbk, nfsx, xl, xl->fops->mknod,
- pathloc, mode, dev);
+ STACK_WIND_COOKIE (frame, nfs_fop_mknod_cbk, xl, xl, xl->fops->mknod,
+ pathloc, mode, dev);
ret = 0;
err:
if (ret < 0) {
@@ -884,12 +884,12 @@ nfs_fop_rmdir (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Rmdir: %s", pathloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, pathloc);
- STACK_WIND_COOKIE (frame, nfs_fop_rmdir_cbk, nfsx, xl, xl->fops->rmdir,
- pathloc);
+ STACK_WIND_COOKIE (frame, nfs_fop_rmdir_cbk, xl, xl, xl->fops->rmdir,
+ pathloc);
ret = 0;
err:
if (ret < 0) {
@@ -932,12 +932,12 @@ nfs_fop_unlink (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Unlink: %s", pathloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, pathloc);
- STACK_WIND_COOKIE (frame, nfs_fop_unlink_cbk, nfsx, xl,
- xl->fops->unlink, pathloc);
+ STACK_WIND_COOKIE (frame, nfs_fop_unlink_cbk, xl, xl,
+ xl->fops->unlink, pathloc);
ret = 0;
err:
if (ret < 0) {
@@ -983,11 +983,11 @@ nfs_fop_link (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *oldloc,
gf_log (GF_NFS, GF_LOG_TRACE, "Link: %s -> %s", newloc->path,
oldloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, newloc);
- STACK_WIND_COOKIE (frame, nfs_fop_link_cbk, nfsx, xl, xl->fops->link,
+ STACK_WIND_COOKIE (frame, nfs_fop_link_cbk, xl, xl, xl->fops->link,
oldloc, newloc);
ret = 0;
err:
@@ -1040,13 +1040,13 @@ nfs_fop_rename (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *oldloc,
gf_log (GF_NFS, GF_LOG_TRACE, "Rename: %s -> %s", oldloc->path,
newloc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, oldloc);
nfs_fop_newloc_save_root_ino (nfl, newloc);
- STACK_WIND_COOKIE (frame, nfs_fop_rename_cbk, nfsx, xl,
- xl->fops->rename, oldloc, newloc);
+ STACK_WIND_COOKIE (frame, nfs_fop_rename_cbk, xl, xl,
+ xl->fops->rename, oldloc, newloc);
ret = 0;
err:
if (ret < 0) {
@@ -1086,11 +1086,11 @@ nfs_fop_open (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *loc,
return ret;
gf_log (GF_NFS, GF_LOG_TRACE, "Open: %s", loc->path);
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
- STACK_WIND_COOKIE (frame, nfs_fop_open_cbk, nfsx, xl, xl->fops->open,
- loc, flags, fd, wbflags);
+ STACK_WIND_COOKIE (frame, nfs_fop_open_cbk, xl, xl, xl->fops->open,
+ loc, flags, fd, wbflags);
ret = 0;
err:
if (ret < 0) {
@@ -1133,7 +1133,7 @@ nfs_fop_write (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, fd_t *fd,
if ((!nfsx) || (!xl) || (!fd) || (!vector) || (!nfu) || (!srciob))
return ret;
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_fd_ino (nfl, fd);
@@ -1145,8 +1145,8 @@ nfs_fop_write (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, fd_t *fd,
}
iobref_add (nfl->iobref, srciob);
- STACK_WIND_COOKIE (frame, nfs_fop_writev_cbk, nfsx, xl,xl->fops->writev
- , fd, vector, count, offset, nfl->iobref);
+ STACK_WIND_COOKIE (frame, nfs_fop_writev_cbk, xl, xl,xl->fops->writev
+ , fd, vector, count, offset, nfl->iobref);
ret = 0;
err:
if (ret < 0) {
@@ -1187,11 +1187,11 @@ nfs_fop_fsync (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, fd_t *fd,
if ((!nfsx) || (!xl) || (!fd))
return ret;
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_fd_ino (nfl, fd);
- STACK_WIND_COOKIE (frame, nfs_fop_fsync_cbk, nfsx, xl,
+ STACK_WIND_COOKIE (frame, nfs_fop_fsync_cbk, xl, xl,
xl->fops->fsync, fd, datasync);
ret = 0;
err:
@@ -1234,11 +1234,11 @@ nfs_fop_read (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, fd_t *fd,
if ((!xl) || (!fd) || (!nfu))
return ret;
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_fd_ino (nfl, fd);
- STACK_WIND_COOKIE (frame, nfs_fop_readv_cbk, nfsx, xl, xl->fops->readv,
+ STACK_WIND_COOKIE (frame, nfs_fop_readv_cbk, xl, xl, xl->fops->readv,
fd, size, offset);
ret = 0;
err:
@@ -1280,11 +1280,11 @@ nfs_fop_truncate (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *loc,
if ((!nfsx) || (!xl) || (!loc) || (!nfu))
return ret;
- nfs_fop_handle_frame_create (frame, xl, nfu, ret, err);
+ nfs_fop_handle_frame_create (frame, nfsx, nfu, ret, err);
nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);
nfs_fop_save_root_ino (nfl, loc);
- STACK_WIND_COOKIE (frame, nfs_fop_truncate_cbk, nfsx, xl,
+ STACK_WIND_COOKIE (frame, nfs_fop_truncate_cbk, xl, xl,
xl->fops->truncate, loc, offset);
ret = 0;