| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
configured window.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 570 (Cache only those files whose sizes falls under a configured window size)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=570
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
- translators like io-cache, read-ahead return a zero-filled stbuf in
readv_cbk and usage of zero filled stat for cache validation is not
correct.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 376 (server-side io-cache is preventing client-side io-cache from working)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=376
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- distribute picks up the inode number from hashed subvolume. But readdir
is done from different subvolumes based on the offset. Hence there is a
possibility of inode number and device number for directories being
inconsistent between two stat calls.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 371 (rm -rf fails on stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=371
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sp_get_cache_entry.
- since we don't know the size of dentry before calling sp_get_cache_entry,
we must dynamically allocate the dentry in sp_cache_get_entry and copy the
contents from cache.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 371 (rm -rf fails on stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=371
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 374 (quick read fails to initialize if no options are given)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=374
|
|
|
|
|
|
|
|
|
|
| |
inode_ctx_get returns -1.
Signed-off-by: vinayak <vinayak@laptop.(none)>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 360 (All fop fails when stat-prefetch is loaded on afr.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=360
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vinayak Hegde <vinayak@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 360 (All fop fails when stat-prefetch is loaded on afr.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=360
|
|
|
|
|
|
|
|
|
| |
data flushed.
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- the earlier hash function does not distribute pages uniformly for offsets that
fit into 32 bits. The reason is that the hash function just xors the contents of
the key 4 bytes at a time with the current value of hash. Hence for keys that
fit into 32 bits, the hash will be the key itself. Since we are using the
rounded_offset (which is a multiple of 128KB) as the key, the key will
be exactly divisible by the number of buckets configured (4096) resolving all
the pages into the first bucket.
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
entries in the hash table as argument.
- the expected number of entries is used to create the memory pool of the hash
table. Having constant macro for this purpose is not suitable since different
users of rbtree based hash table store different number of entries in the
table.
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
|
|
|
|
|
|
|
|
|
| |
- page table of cache was not being destroyed in ioc_forget.
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
|
|
|
|
|
|
|
|
|
|
|
| |
- the destroyer function passed to rbthash_table_init is used to free the data.
The data being inserted is page and it is destroyed in ioc_page_destroy. Hence
no destroyer function needs to be passed to rbthash_table_init.
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
|
|
|
|
|
|
|
|
|
| |
- io-cache uses rbtree based hash tables to store page-cache instead of lists.
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
be missed.
- local->file was being assigned even before file pointer was got from any of
the fds opened on the inode, thus making local->file to be NULL. In
wb_setattr_cbk, since local->file is NULL (and hence file passed to
wb_process_queue), wb_process_queue does not resume the pending operations
queued for the file.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 327 (dbench does not complete)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=327
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 213 (Support for process state dump)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=213
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 213 (Support for process state dump)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=213
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 213 (Support for process state dump)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=213
|
|
|
|
|
|
|
|
|
|
| |
if mtime,atime are not changed,
frame->local will not be initialized.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 310 (While trying to create a file on replicate with write behind set-up, client crashes.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=310
|