| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
afr_lk_cbk:
Use the original struct flock supplied by the
user to do further STACK_WIND's, and not the flock returned
by the previous STACK_WIND.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 159 (Client hangs when coherent byte range locks is attempted in replicate setup)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=159
|
|
|
|
|
|
|
|
|
|
|
|
| |
There seems to a reproduceable corruption specifically of
the libglusterfs_client_local_t that is allocated for
the read call. Therefore, the subsequent access to fd inside
local leads to a segfault. This is a temporary fix.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 164 (libglusterfsclient: Segfault due to memory corruption of frame local in libgf_client_read)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=164
|
|
|
|
|
|
|
|
|
|
| |
Remember the inode number that had been returned in lookup_cbk
and set the stat buf->ino to the same.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 166 (libglusterfsclient: Cached stat buf inode is different from ino in inode_t)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=166
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 166 (libglusterfsclient: Cached stat buf inode is different from ino in inode_t)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=166
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In libgf_client_loc_fill, there is a possibility that all
the ino, par and name are specified as non-NULL,non-zero args.
So if an inode is located in the itable using the ino and the
subsequent search for the inode using the par-ino and the file
name does not result in an inode being found, the current
code over-writes the inode that was found through the ino. The
correct behaviour is to stop further searches if inode
was already found using ino.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 161 (unfs3 crashes on link system call by fileop)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the loc_t of the link being created, we must fill in the inode
of the old/target loc since this is a link operation. The
inode_link to the new parent is called in libgf_client_link.
This fixes a crash while running fileop over a fully-loaded
dist-repl vol file.
Ref: Bugzilla 161
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 161 (unfs3 crashes on link system call by fileop)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is needed to work around the replicate behaviour of
possibly returning device number for the same file from
different subvolumes.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 148 (replicate: Returns st_dev from different subvols resulting in ESTALE thru unfs3booster)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=148
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The workaround for the DHT requirement for a lookup on /
needs to be done only once when the xlator graph is inited.
Doing it on every path's lookup results in a major performance
penalty when using distribute subvolumes upwards of 16, as reported
by Avati.
Ref: bug 152
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 152 (libglusterfsclient: DHT workaround is a major performance bottleneck)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=152
|
|
|
|
|
|
|
|
|
| |
also did some minor enhancements in formating
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 151 (crash dump log should be in 'logviewer' friendly format)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=151
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
|
|
|
|
|
|
|
|
|
|
|
| |
return value of 'asprintf' was not checked, and the flow was
continuing without returning error, which could cause potential
segfaults in code (mostly possible during ENOMEM case).
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
|
|
|
|
|
|
|
|
|
|
| |
which can be used to get the file location by 'hostname' of the
machine where file resides.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 131 (provide a way to get the file location in clustered storage)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=131
|
|
|
|
|
|
|
| |
future plan is to have httpd use booster and libglusterfsclient
instead.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 149 (libglusterfsclient interacts incorrectly with write-behind on writev)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=149
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
the lock operation on entry or inode is going to happen on only one
inode, and it doesn't need dentry (with info on parent) for the
lock operation to complete. Hence, in server_{inode,entry}lk() calls
after server_loc_fill, we -should not- be checking for parent inode.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 112 (parallel deletion of files mounted by different clients on the same back-end hangs and/or does not completely delete)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=112
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
removed 'fuction ' prefix to function definitions which was very
much /bin/bash specific.
Thanks to Brent A. Nelson <brent@phys.ufl.edu> for the patch.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 139 (tiny glitch in mount.glusterfs in 2.0.4)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=139
|
| | |
| | |
| | |
| | |
| | |
| | | |
classified stat for write/read fops based on their block size.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
- writev on any fd opened on a file invalidates the cache stored during lookup
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- pseudo-code of the algorithm is given below
if (content is cached) {
validate-contents ();
if (content cached is valid) {
stack unwind with cached content;
} else {
goto read-from-storage;
}
} else {
goto read-from-storage;
}
return;
read-from-storage:
if (open is already done on fd) {
stack-wind read;
} else {
add the current readv to list of operations waiting on completion of
open;
if (open on the fd is in transit) {
do nothing;
} else {
stack-wind open;
}
}
return;
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- The file is opened actually only if it is not cached already in lookup.
This adds responsibility for fops operating on fds to make sure that a
valid fd actually opened on a file is used to complete the fop.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
lookup can fetch the entire file in xattr dictionary using the key
"glusterfs.content". We set the maximum size of the file that can
be fetched so in the xattr_req dictionary using the same key. If file-size
is less than or equal to the value set in dictionary, the content is stored
in the dictionary using same key in lookup_cbk.
For small files, we can do an optimization wherein we do not really send the
calls open, read and close to the storage translators. Instead there can be
an xlator which fakes open, read and close calls. For reads, it sends the data
it has cached during lookup and hence saving the time for open, read and close
calls to reach storage translators (this time can be significant if calls have
to go through network to reach storage translator).
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 138 (create family calls do not return stat buf from read child)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=138
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also modifies the inode-write ops to wait for the call
to read-child to return (whether success or failure)
before unwinding.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 125 (stat information not returned from the same subvolume always)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=125
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make sure that users don't provide "../" in the path value in volume file,
which should be considered security issue.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 141 (GF_OPTION_TYPE_PATH should check for presence of ".." in path)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=141
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This needs to be exported in order to have the booster
Mount Point Bypass technique work through libglusterfsclient.
Booster uses the mount point to register with libglusterfsclient as
a VMP. Subsequently, all file operations on the mounted GlusterFS
mount point get redirected to libglusterfsclient.
This fixes bug 136.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 136 (booster does not redirect ops on GlusterFS mount point into libglusterfsclient)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=136
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
a given search for path can't exceed the length of PATH_MAX in any case.
Hence, its best to make sure by adding a check inside the for loop of
inode_path, so that it won't enter an infinite loop.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 134 (infinite loop in inode_path ())
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=134
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Removing unused 'dict_t *ctx' from both inode and fd structures.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 128 (cleanup unwanted ctx dictionary in 'inode' and 'fd' structures.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=128
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
to network fails
* fix to bug #101 - When a buffer bigger than ib-verbs-work-request-send-size
was attempted to write to network, ib-verbs returns ENOTCONN. Neverthless,
the ioq_entry corresponding to the write was appended to the pending lists
of ioq_entries waiting to be written to network. This resulted in double
free of header, once in protocol_client_xfer and again during cleanup of
transport. The transport cleanup happened due to the timeouts of
subsequent operations, since ioq_entry corresponding to writev
was blocking any other operations from reaching server.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 101 (ib-verbs config crashing while dd'ing with a big mtu size)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=101
|