| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
Backport of http://patches.gluster.com/patch/561/ to release-2.0
Also, the failover version of afr_readdir_cbk is buggy and
crashes when it is called after a failover inevitably
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 150 (AFR readdir should not failover to other subvolume)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=150
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
future plan is to have httpd use booster and libglusterfsclient
instead.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch helps to distribute load across an afr cluster
when you have clients with the same access patterns, such
as in benchmarking or map-reduce. By randomly offsetting
the initial read_child_rr, clients should distribute reads
over the afr nodes on average.
A better solution could be to randomly shuffle the children
instead of chosing a different initial offset. This should
average the reads better across the nodes, but I'm not
sure if there are any other consequences to doing this.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Fixes for Solaris and MacOSX build errors.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
| |
Also fixes a bug in the "KLUDGE" part. It was setting lookup_buf
when it should have been setting local->cont.lookup.buf
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
format-patch" with similar arguments for submitting patches to the GlusterFS project
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
changes come in two places.
configure.ac - define HAVE_FUSE_REPLY_IOV if fuse_reply_iov is
available in libfuse.
mount/fuse - use fuse_reply_iov() in place of fuse_reply_vec(), if
HAVE_FUSE_REPLY_IOV is defined.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
We werent updating the attr AKA stat cache on read and write
on files so every stat on the file before the timeout was returning
stale attr from the cache. Yuck!
This fixes it. Turns out there is a good aspect of unfs3's notoriety
when it comes to doing stat()s for every operation.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
| |
In AFR self-heal set timestamp of a freshly created missing entry
to that of the source entry.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
| |
Ref: http://www.gnu.org/s/libc/manual/html_node/Access-Modes.html
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
| |
This makes the log format compatible with earlier
versions. Fixes bug #105.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
| |
open() & create() calls should reset frame->local to NULL.
bz# 104
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>
|
|
|
|
|
|
|
|
| |
"fuse_opt_add_arg"
This makes it easier to adjust the option list, and also reduces redundancy.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
| |
integer typecast warnings fixed
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
| |
Write calls should not be pushed to background only when the
mandatory locking is enabled, in all other cases (eg: O_SYNC,
O_DIRECT etc), we should not be 'caching' any data, but the
calls can be pushed to the background
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
| |
- though the previous commit fixes bug #29, this patch fixes bugs
arising in similar situations where xattrop is initiated by
xlators other than afr.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
each of the subvolume
- This patch fixes bug #29.
- Using separate copies of dictionaries also eliminates a potential bug in a
setup consisting of afr with a posix and client, each having io-threads on
top as children. Since posix_xattrop after performing required operations
on the xattr array passed in dictionary, sets the result at the same key
and in the same dictionary passed as input argument,
there can be race conditions where in the results of the operation on
posix-child can be sent to the other child as input argument for xattrop,
which ofcourse is wrong.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We've been facing a problem on some test systems where the
booster.so is built by libtool as an executable rather than
a dynamically loadable library.
This problem is probably caused by it seeing a _init function in
the source. This is the name of the libc initiliazation
function so it could be the source of the problem.
In any case, ld-preloadable libraries must not have a function
called _init, instead they need to have __attribute ((constructor))
as the attribute for any and all functions the library wants
executed before the program's main(). Our earlier approach was
inherently problematic.
This commit also cleans up the booster Makefile for better
build behaviour. Credit: Harsha.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is possible that the only translator in the libglusterfsclient
tree is the posix. In that case, inside gluster_init, the graph
init routines will need to call lstat on the posix subdirectory.
Since even the glusterfs stack is running over booster, those
calls will also first require vmp searching. BUT, the vmp lock
is the same as the mount lock that was already taken when we entered
glusterfs_mount, so a deadlock occurs.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch, we might have finally arrived at a solution
to the problem of function definition conflicts between
our functions and those of libc while over-riding the libc versions.
This commit defines functions which do not conflict with libc,
then it uses libc's own macro to redirect/rename these functions
to the actual sys call names in the binary.
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>
|
|
|
|
|
|
|
|
|
|
|
| |
The reason we need a booster specific fd-table is because
the libglusterfs fd-table has come to a point where it is
optimized for libglusterfs-style of fd allocations.
This conflicts with the way booster requires fds to be allocated
so this commit brings in a re-based version of a booster-specific
fd-table written by Raghu.
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>
|
|
|
|
|
|
|
|
|
| |
This change is being brought in so that we can
differentiate between fdentry_ts when debugging using
gdb.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Thhie change removes a huge inefficiency in file open
path where every open resulted in dictionary operations
in order to let the client maintain a list of fd_t's being
used over a particular client context.
Resolves: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=16
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
| |
This commit reduces CPU usage of gf_fd_unused_get drastically by
making it O(1) instead of O(n).
Related to: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=16
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|