| 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>
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| | |
format-patch" with similar arguments for submitting patches to the GlusterFS project
|
|/
|
|
| |
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>
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
been init()ed.
fixes bz# 12
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
| |
in _gf_log(), free 'msg' before returning.
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>
|
|
|
|
|
|
|
| |
to maintain uniformity of maximum length of file name, through out
glusterfs, use NAME_MAX.
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>
|