| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 132 (fuse-bridge could do with some cleanups)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=132
|
|
|
|
|
|
|
|
|
|
| |
- use PRIu64 for printing "unique"
- use fcntl defines instead of explicit numeric values for querying open flags
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 132 (fuse-bridge could do with some cleanups)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=132
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 132 (fuse-bridge could do with some cleanups)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=132
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 124 (state allocation failure not handled)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=124
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 119 (filter + replicate crash..)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=119
|
|
|
|
|
|
|
|
|
|
| |
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>
BUG: 116 (Replicate: Need inode number from first subvolume on fresh lookup)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=116
|
|
|
|
| |
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>
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
and "-o" options to be agnostic of their position.
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>
|
|
|
|
|
|
|
|
|
| |
as client now doesn't send forget at all to server, it should take care
of forgetting the inode when there is a successful unlink and rmdir fops.
also cleaned up unwanted forget fop's code.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
upon detailed inspection of 'forget' behavior, it became evident that
forgets from client should not goto server side, as server keeps its
own purging mechanism to forget its inodes.
if client sends all forget to server, many highly used required inodes
may get freed up (it will surely effect io-cache buffers on server side)
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
I noticed that there were some minor spelling mistakes/typos in some
of the source files. This patch fixes the ones I've found.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
| |
This patch is a step towards giving compatibility between the versions of
GlusterFS. Now onwards, the protocol-version won't depend on release
versions. In general, multiple glusterfs versions can have common
protocol-version.
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ref: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=37
earlier instead of path, it used to take port number, which is an
option (-o server-port=<port>), now.
new syntax is
bash# mount -t glusterfs <hostname>:<path/key> [mountpoint]
[This patch is backward compatible with earlier syntax]
bash# mount -t glusterfs <hostname>:<port> [mountpoint]
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|