diff options
Diffstat (limited to 'xlators/nfs/server/src/nfs-inodes.c')
-rw-r--r-- | xlators/nfs/server/src/nfs-inodes.c | 115 |
1 files changed, 59 insertions, 56 deletions
diff --git a/xlators/nfs/server/src/nfs-inodes.c b/xlators/nfs/server/src/nfs-inodes.c index 69bad072484..4b8bad71789 100644 --- a/xlators/nfs/server/src/nfs-inodes.c +++ b/xlators/nfs/server/src/nfs-inodes.c @@ -78,7 +78,7 @@ do_not_link: */ fd_unref (fd); - nfl_to_prog_data (this, nfl, progcbk, frame); + nfl_to_prog_data (nfl, progcbk, frame); if (progcbk) progcbk (frame, cookie, this, op_ret, op_errno, fd, inode, buf, preparent, postparent); @@ -87,17 +87,18 @@ do_not_link: int -nfs_inode_create (xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc, int flags, - int mode, fop_create_cbk_t cbk, void *local) +nfs_inode_create (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, + loc_t *pathloc, int flags, int mode, fop_create_cbk_t cbk, + void *local) { struct nfs_fop_local *nfl = NULL; int ret = -EFAULT; fd_t *newfd = NULL; - if ((!xl) || (!pathloc) || (!nfu)) + if ((!nfsx) || (!xl) || (!pathloc) || (!nfu)) return ret; - nfs_fop_handle_local_init (NULL, xl, nfl, cbk, local, ret, err); + nfs_fop_handle_local_init (NULL, nfsx, nfl, cbk, local, ret, err); newfd = fd_create (pathloc->inode, 0); if (!newfd) { @@ -111,7 +112,7 @@ nfs_inode_create (xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc, int flags, */ nfl_inodes_init (nfl, pathloc->inode, pathloc->parent, NULL, pathloc->name, NULL); - ret = nfs_fop_create (xl, nfu, pathloc, flags, mode, newfd, + ret = nfs_fop_create (nfsx, xl, nfu, pathloc, flags, mode, newfd, nfs_inode_create_cbk, nfl); wipe_nfl: if (ret < 0) @@ -137,7 +138,7 @@ nfs_inode_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, inode_link (inode, nfl->parent, nfl->path, buf); do_not_link: - nfl_to_prog_data (this, nfl, progcbk, frame); + nfl_to_prog_data (nfl, progcbk, frame); if (progcbk) progcbk (frame, cookie, this, op_ret, op_errno, inode, buf, preparent, postparent); @@ -145,23 +146,24 @@ do_not_link: return 0; } + int -nfs_inode_mkdir (xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc, int mode, - fop_mkdir_cbk_t cbk, void *local) +nfs_inode_mkdir (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc, + int mode, fop_mkdir_cbk_t cbk, void *local) { struct nfs_fop_local *nfl = NULL; int ret = -EFAULT; - if ((!xl) || (!pathloc) || (!nfu)) + if ((!nfsx) || (!xl) || (!pathloc) || (!nfu)) return ret; - nfs_fop_handle_local_init (NULL, xl, nfl, cbk, local, ret, err); + nfs_fop_handle_local_init (NULL, nfsx, nfl, cbk, local, ret, err); nfl_inodes_init (nfl, pathloc->inode, pathloc->parent, NULL, pathloc->name, NULL); - ret = nfs_fop_mkdir (xl, nfu, pathloc, mode, nfs_inode_mkdir_cbk, + ret = nfs_fop_mkdir (nfsx, xl, nfu, pathloc, mode, nfs_inode_mkdir_cbk, nfl); if (ret < 0) - nfs_fop_local_wipe (xl, nfl); + nfs_fop_local_wipe (nfsx, nfl); err: return ret; @@ -184,7 +186,7 @@ nfs_inode_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, /* else fd_bind (fd); */ - nfl_to_prog_data (this, nfl, progcbk, frame); + nfl_to_prog_data (nfl, progcbk, frame); if (progcbk) progcbk (frame, cookie, this, op_ret, op_errno, fd); return 0; @@ -192,14 +194,14 @@ nfs_inode_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int -nfs_inode_open (xlator_t *xl, nfs_user_t *nfu, loc_t *loc, int32_t flags, - int32_t wbflags, fop_open_cbk_t cbk, void *local) +nfs_inode_open (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *loc, + int32_t flags, int32_t wbflags, fop_open_cbk_t cbk, void *local) { struct nfs_fop_local *nfl = NULL; fd_t *newfd = NULL; int ret = -EFAULT; - if ((!xl) || (!loc) || (!nfu)) + if ((!nfsx) || (!xl) || (!loc) || (!nfu)) return ret; newfd = fd_create (loc->inode, 0); @@ -209,8 +211,8 @@ nfs_inode_open (xlator_t *xl, nfs_user_t *nfu, loc_t *loc, int32_t flags, goto err; } - nfs_fop_handle_local_init (NULL, xl, nfl, cbk, local, ret, fd_err); - ret = nfs_fop_open (xl, nfu, loc, flags, newfd, wbflags, + nfs_fop_handle_local_init (NULL, nfsx, nfl, cbk, local, ret, fd_err); + ret = nfs_fop_open (nfsx, xl, nfu, loc, flags, newfd, wbflags, nfs_inode_open_cbk, nfl); if (ret < 0) @@ -245,7 +247,7 @@ nfs_inode_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this, nfl->newpath, nfl->inode, buf); do_not_link: - nfl_to_prog_data (this, nfl, progcbk, frame); + nfl_to_prog_data (nfl, progcbk, frame); if (progcbk) progcbk (frame, cookie, this, op_ret, op_errno, buf, preoldparent, postoldparent, prenewparent, @@ -255,19 +257,19 @@ do_not_link: int -nfs_inode_rename (xlator_t *xl, nfs_user_t *nfu, loc_t *oldloc, +nfs_inode_rename (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *oldloc, loc_t *newloc, fop_rename_cbk_t cbk, void *local) { struct nfs_fop_local *nfl = NULL; int ret = -EFAULT; - if ((!xl) || (!oldloc) || (!newloc)) + if ((!nfsx) || (!xl) || (!oldloc) || (!newloc)) return ret; - nfs_fop_handle_local_init (NULL, xl, nfl, cbk, local, ret, err); + nfs_fop_handle_local_init (NULL, nfsx, nfl, cbk, local, ret, err); nfl_inodes_init (nfl, oldloc->inode, oldloc->parent, newloc->parent, oldloc->name, newloc->name); - ret = nfs_fop_rename (xl, nfu, oldloc, newloc, nfs_inode_rename_cbk + ret = nfs_fop_rename (nfsx,xl, nfu, oldloc, newloc, nfs_inode_rename_cbk , nfl); err: @@ -294,7 +296,7 @@ nfs_inode_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this, inode_link (inode, nfl->newparent, nfl->path, buf); do_not_link: - nfl_to_prog_data (this, nfl, progcbk, frame); + nfl_to_prog_data (nfl, progcbk, frame); if (progcbk) progcbk (frame, cookie, this, op_ret, op_errno, inode, buf, preparent, postparent); @@ -303,18 +305,18 @@ do_not_link: int -nfs_inode_link (xlator_t *xl, nfs_user_t *nfu, loc_t *oldloc, +nfs_inode_link (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *oldloc, loc_t *newloc, fop_link_cbk_t cbk, void *local) { struct nfs_fop_local *nfl = NULL; int ret = -EFAULT; - if ((!xl) || (!oldloc) || (!newloc) || (!nfu)) + if ((!nfsx) || (!xl) || (!oldloc) || (!newloc) || (!nfu)) return -EFAULT; - nfs_fop_handle_local_init (NULL, xl, nfl, cbk, local, ret, err); + nfs_fop_handle_local_init (NULL, nfsx, nfl, cbk, local, ret, err); nfl_inodes_init (nfl, NULL, NULL, newloc->parent, newloc->name, NULL); - ret = nfs_fop_link (xl, nfu, oldloc, newloc, nfs_inode_link_cbk, + ret = nfs_fop_link (nfsx, xl, nfu, oldloc, newloc, nfs_inode_link_cbk, nfl); err: @@ -341,7 +343,7 @@ nfs_inode_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, inode_unlink (nfl->inode, nfl->parent, nfl->path); do_not_unlink: - nfl_to_prog_data (this, nfl, progcbk, frame); + nfl_to_prog_data (nfl, progcbk, frame); if (progcbk) progcbk (frame, cookie, this, op_ret, op_errno, preparent, postparent); @@ -350,19 +352,19 @@ do_not_unlink: int -nfs_inode_unlink (xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc, +nfs_inode_unlink (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc, fop_unlink_cbk_t cbk, void *local) { struct nfs_fop_local *nfl = NULL; int ret = -EFAULT; - if ((!xl) || (!pathloc) || (!nfu)) + if ((!nfsx) || (!xl) || (!pathloc) || (!nfu)) return -EFAULT; - nfs_fop_handle_local_init (NULL, xl, nfl, cbk, local, ret, err); + nfs_fop_handle_local_init (NULL, nfsx, nfl, cbk, local, ret, err); nfl_inodes_init (nfl, pathloc->inode, pathloc->parent, NULL, pathloc->name, NULL); - ret = nfs_fop_unlink (xl, nfu, pathloc, nfs_inode_unlink_cbk, nfl); + ret = nfs_fop_unlink (nfsx, xl, nfu, pathloc, nfs_inode_unlink_cbk,nfl); err: if (ret < 0) @@ -388,7 +390,7 @@ nfs_inode_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, inode_unlink (nfl->inode, nfl->parent, nfl->path); do_not_unlink: - nfl_to_prog_data (this, nfl, progcbk, frame); + nfl_to_prog_data (nfl, progcbk, frame); if (progcbk) progcbk (frame, cookie, this, op_ret, op_errno, preparent, postparent); @@ -398,20 +400,20 @@ do_not_unlink: int -nfs_inode_rmdir (xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc, +nfs_inode_rmdir (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc, fop_rmdir_cbk_t cbk, void *local) { struct nfs_fop_local *nfl = NULL; int ret = -EFAULT; - if ((!xl) || (!pathloc) || (!nfu)) + if ((!nfsx) || (!xl) || (!pathloc) || (!nfu)) return ret; - nfs_fop_handle_local_init (NULL, xl, nfl, cbk, local, ret, err); + nfs_fop_handle_local_init (NULL, nfsx, nfl, cbk, local, ret, err); nfl_inodes_init (nfl, pathloc->inode, pathloc->parent, NULL, pathloc->name, NULL); - ret = nfs_fop_rmdir (xl, nfu, pathloc, nfs_inode_rmdir_cbk, nfl); + ret = nfs_fop_rmdir (nfsx, xl, nfu, pathloc, nfs_inode_rmdir_cbk, nfl); err: if (ret < 0) @@ -437,7 +439,7 @@ nfs_inode_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this, inode_link (inode, nfl->parent, nfl->path, buf); do_not_link: - nfl_to_prog_data (this, nfl, progcbk, frame); + nfl_to_prog_data (nfl, progcbk, frame); if (progcbk) progcbk (frame, cookie, this, op_ret, op_errno, inode, buf, preparent, postparent); @@ -446,21 +448,21 @@ do_not_link: int -nfs_inode_mknod (xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc, +nfs_inode_mknod (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc, mode_t mode, dev_t dev, fop_mknod_cbk_t cbk, void *local) { struct nfs_fop_local *nfl = NULL; int ret = -EFAULT; - if ((!xl) || (!pathloc) || (!nfu)) + if ((!nfsx) || (!xl) || (!pathloc) || (!nfu)) return ret; - nfs_fop_handle_local_init (NULL, xl, nfl, cbk, local, ret, err); + nfs_fop_handle_local_init (NULL, nfsx, nfl, cbk, local, ret, err); nfl_inodes_init (nfl, pathloc->inode, pathloc->parent, NULL, pathloc->name, NULL); - ret = nfs_fop_mknod (xl, nfu, pathloc, mode, dev, nfs_inode_mknod_cbk, - nfl); + ret = nfs_fop_mknod (nfsx, xl, nfu, pathloc, mode, dev, + nfs_inode_mknod_cbk, nfl); err: if (ret < 0) @@ -486,7 +488,7 @@ nfs_inode_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, inode_link (inode, nfl->parent, nfl->path, buf); do_not_link: - nfl_to_prog_data (this, nfl, progcbk, frame); + nfl_to_prog_data (nfl, progcbk, frame); if (progcbk) progcbk (frame, cookie, this, op_ret, op_errno, inode, buf, preparent, postparent); @@ -496,20 +498,20 @@ do_not_link: int -nfs_inode_symlink (xlator_t *xl, nfs_user_t *nfu, char *target, +nfs_inode_symlink (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, char *target, loc_t *pathloc, fop_symlink_cbk_t cbk, void *local) { struct nfs_fop_local *nfl = NULL; int ret = -EFAULT; - if ((!xl) || (!target) || (!pathloc) || (!nfu)) + if ((!nfsx) || (!xl) || (!target) || (!pathloc) || (!nfu)) return ret; - nfs_fop_handle_local_init (NULL, xl, nfl, cbk, local, ret, err); + nfs_fop_handle_local_init (NULL, nfsx, nfl, cbk, local, ret, err); nfl_inodes_init (nfl, pathloc->inode, pathloc->parent, NULL, pathloc->name, NULL); - ret = nfs_fop_symlink (xl, nfu, target, pathloc, nfs_inode_symlink_cbk, - nfl); + ret = nfs_fop_symlink (nfsx, xl, nfu, target, pathloc, + nfs_inode_symlink_cbk, nfl); err: if (ret < 0) @@ -531,7 +533,7 @@ nfs_inode_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, else fd_bind (fd); - nfl_to_prog_data (this, nfl, progcbk, frame); + nfl_to_prog_data (nfl, progcbk, frame); if (progcbk) progcbk (frame, cookie, this, op_ret, op_errno, fd); @@ -540,14 +542,14 @@ nfs_inode_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int -nfs_inode_opendir (xlator_t *xl, nfs_user_t *nfu, loc_t *loc, +nfs_inode_opendir (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *loc, fop_opendir_cbk_t cbk, void *local) { struct nfs_fop_local *nfl = NULL; fd_t *newfd = NULL; int ret = -EFAULT; - if ((!xl) || (!loc) || (!nfu)) + if ((!nfsx) || (!xl) || (!loc) || (!nfu)) return ret; newfd = fd_create (loc->inode, 0); @@ -557,8 +559,9 @@ nfs_inode_opendir (xlator_t *xl, nfs_user_t *nfu, loc_t *loc, goto err; } - nfs_fop_handle_local_init (NULL, xl, nfl, cbk, local, ret, err); - ret = nfs_fop_opendir (xl, nfu, loc, newfd, nfs_inode_opendir_cbk, nfl); + nfs_fop_handle_local_init (NULL, nfsx, nfl, cbk, local, ret, err); + ret = nfs_fop_opendir (nfsx, xl, nfu, loc, newfd, + nfs_inode_opendir_cbk, nfl); err: if (ret < 0) { |