| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
- size-to-be pruned used to be a negative number because of cache-used being
subtracted from configured cache-limit (with cache-used > cache-limit).
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 980 (quick read - fetching from backend issue)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=980
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 723 (enhancements to quick read)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=723
|
|
|
|
|
|
| |
writes."
This reverts commit 6d9b11dba63d86c48450aa956281114962289ef5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- If there are non-contiguous offsets (offsets which do not start where
previous write ended), wait for completion of previous writes to server,
before sending new ones.
- Send flush call to server only when all writes are completed.
- If a file is opened with O_APPEND, at any point of time a maximum only one
write call to server should be in transit. This is to avoid reordering of
writes in the presence of afr which can result in data corruption.
See bug #934 for more details.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 934 (md5sum mismatch when files are transferred using vsftpd)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=934
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 723 (enhancements to quick read)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=723
|
|
|
|
|
|
|
|
|
|
|
|
| |
..because loc->parent can be NULL for the root inode.
Having this check makes sp return EINVAL on perfectly valid
fops.
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 854 (nfs server didn't start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=854
|
|
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com>
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 898 (small file performance enhancements)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=898
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ra_file is initialized
- If ptr to ra_file is set in fd->ctx even before initializing all its
members, A race condition may occur b/w a thread executing ra_fstat,
ra_readv etc (where all files open on the same inode are flushed) and
the thread doing initialization of ra_file (in ra_open_cbk or
ra_create_cbk). Because of this race-condition, flush_region might be
called on an uninitialized ra_file, thereby causing crash.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 868 (crash in ra_fstat)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=868
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 828 (glusterdump filled up the /)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=828
|
|
|
|
|
|
|
|
|
|
| |
just after validation.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 852 (QR cache-timeout 0 causes high CPU usage and app hangs)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=852
|
|
|
|
|
|
|
|
|
|
| |
whether to keep cache or not.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 801 (Direct io-mode support and related changes in caching translators.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=801
|
|
|
|
|
|
|
|
|
|
| |
cache validation.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 801 (Direct io-mode support and related changes in caching translators.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=801
|
|
|
|
|
|
|
|
|
|
| |
O_DIRECT flag.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 723 (enhancements to quick read)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=723
|
|
|
|
|
|
|
|
|
|
| |
the request queue in a single go.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 740 (read-ahead does not work to its full potential when loaded on top of write-behind)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=740
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 621 (3.0.2 GlusterFS fails on Solaris 10)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=621
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
contiguous iobufs into a single iobuf
- while aggregating, we should make sure that the destination has enough
memory. __wb_collapse_write_bufs assumed that destination vector's iov_base
was aligned to the start of an iobuf and hence memory of page_size is
available for aggregation. This assumption is not always true, like in the
configuration consisting afr->write->io-cache (afr is on top). Refer to the
bug url for more details.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 542 (write-behind crashes)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=542
|
|
|
|
|
|
|
|
|
|
| |
- refactor done to remove duplicated code.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 542 (write-behind crashes)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=542
|
|
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 583 (filesystem access hangs while deleting large files)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=583
|
|
|
|
|
|
|
|
|
|
|
| |
fix logic in __wb_mark_winds to properly initialize incomplete_writes
and conditionally check based on enable_trickling_writes flag
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 547 (write-behind enable-trickling-writes working?)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=547
|
|
|
|
|
|
|
|
| |
Signed-off-by: Harshavardhana <harsha@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 364 (Segfault in io-cache)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=364
|
|
|
|
|
|
|
|
|
| |
disable-till to 0"
This reverts commit e6c35f74ff4a204cf016ebf201a2630b331f9434.
This commit is found to trigger spurious self heal by causing flush and writev to get
reordered. Reverting as a workaround.
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 221 (stat prefetch implementation)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
|
|
|
|
|
|
|
|
|
|
|
| |
- rbt_hash_remove only removes entry from the hash table. It does not free
the data.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 438 (Memory leak)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=438
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
failed in sp_process_inode_ctx.
We need this patch for following reasons:
1. The inode used in the successful lookup call may not be the one passed to
fops operating on path. This may happen, if revalidate of inode is failed,
but the lookup itself succeeds (in case of reavalidate failures, fuse
sends a fresh lookup using new inode) and since inode_link, if there is an
inode already associated with a path retains it.
2. Only fops that "wait" in stat-prefetch for a lookup which is already in
progress, need to check for the result of the lookup they are waiting on,
before resuming and sp_process_inode_ctx is _not_ used in such contexts.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 428 (looks like stat cache not upto date..)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=428
|
|
|
|
|
|
|
|
|
|
|
| |
- since sp_process_inode_ctx is called by many fops, if the context is not
set "caller" argument can be logged in log msgs to identify caller.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 221 (stat prefetch implementation)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 221 (stat prefetch implementation)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 221 (stat prefetch implementation)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mkdir.
- context will not be set as a fresh inode is passed in each of these calls.
instead create a new context.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 221 (stat prefetch implementation)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 429 (crash in lookup_cbk when lookup returns with error)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=429
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 425 (Change disable-till default to 0)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=425
|
|
|
|
|
|
|
|
|
|
|
|
| |
of inode passed as arguement in sp_lookup_cbk.
- @inode in sp_lookup_cbk may be NULL in case of failure of lookup.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 426 (stat on mount point hangs.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=426
|
|
|
|
|
|
|
|
|
|
|
| |
- Access the inode table from one of fd->inode->table, inode->table or
parent->table instead of from root xlators itable.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 369 (Samba does not work with booster.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These changes are required to make GlusterFS compile on MacOSX (10.5).
Currently glusterfs server component alone will work over Mac, and it has
to be built with following options to ./configure.
"bash$ ./configure --disable-fuse-client --disable-fusermount "
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 361 (GlusterFS 3.0 should work on Mac OS/X)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=361
|
|
|
|
|
|
|
|
|
|
| |
Lock is held before creating a RBT in inode. Also, did some re-factoring.
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 335 (Io-cache optimization)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
stat-prefetch uses the main syscall frame for performing lookup on
demand. this causes a potential reference to a freed local in
sp_lookup_cbk after resuming the main syscall frame (which could
have unwound and destroyed)
Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 242 (If any of the writes fail, write-behind should not wait till the fd is closed for reporting errors)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=242
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lookup on same path if one is in progress.
- If current lookup (2) does not wait for completion of the lookup (1) which
is in progress, there can be a race condition where (2) completes ahead of
(1) and resuming all the waiting operations in the queue. When (1) returns,
the original operation (eg., stat, chmod etc) might've already unwound and
hence the frame would've been destroyed.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 221 (stat prefetch implementation)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of an inode and its parent.
- this bug results in updation of flags in inode context of the parent
instead of that of inode.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 221 (stat prefetch implementation)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in sp_inode_ctx_process.
- the variables that are used for making decisions are assigned before
memory allocations and these variables were not reset to
correct values in case of memory allocation failures.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 221 (stat prefetch implementation)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
from 1MB.
- protocol restricts the maximum buffer size that can be received over network
to 1MB. Since the buffer holding reply of lookup should also contain the
lookup header and other key/value pairs of xattr_reply dict, the maximum
file size that can be fetched through dictionary cannot be equal to 1MB.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 419 (Issues with writing files of size >= 1MB)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=419
|
|
|
|
|
|
|
|
|
|
| |
rbthash makes use of 1 bucket and a common mem-pool is being used for all rbt entries.
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 221 (stat prefetch implementation)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes in libglusterfs/rbthash:
rbthash_table_init() now takes a mem-pool argument.
The mem-pool argument would be mutually exclusive to expected_entries.
If expected_entries is provided, mem-pool would be ignored and vice-versa.
Changes in io-cache:
1) Moved rbthash creation to readv.
2) rbthash makes use of 1 rbt instead of 4096
3) A global mem-pool is being used in place of a mem-pool per rbt.
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 335 (Io-cache optimization)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 405 (Segmentation fault in stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=405
|
|
|
|
|
|
|
|
|
|
|
| |
- since the lifetime of fd context can be no longer than the fd, we can use
lock in fd.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 405 (Segmentation fault in stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=405
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not the expected one.
- cache creation is expensive operation. Also, cache will be freed in
releasedir. Hence, just remove all entries from cache without freeing
the cache. However this is not entirely true, since sp_cache_remove_entry
frees the old table and reinitializes a new table if all entries are being
removed. When rbtree based hash table provides an interface to remove all
the entries, sp_cache_remove_entry should be modified not to destroy the
table.
- this patch also fixes a race condition wherein the cache being used in
lookup getting freed in readdir if the offset is not equal to expected
offset.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 405 (Segmentation fault in stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=405
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|