| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
towards elmination of frame->root->{req,rsp}_refs
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
| |
frame->root->{req,rsp}_refs
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
Going by the memory usage for each threads, it is prudent to
have lower number of threads by default and let users who understand
the memory consequences increase the thread count for themselves.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
The default stack size on Linux is around 8 MiB for each
thread. This is clearly too high for our purpose. This commit reduces
the stack size down to 1 MiB.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
| |
If file sizes differ, then compulsorily do self-heal. If no 'wise'
sources are found, then pick a 'fool' with the biggest file size.
If even 'fools' aren't found, pick the 'innocent' source with the
biggest file size.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
If a pending xattr key is non-existent on a file (call such
files 'ignorant'), make all other non-ignorant subvolumes point
towards the ignorant one.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
Decrement xattr during self-heal based on the original dict instead
of pending_matrix, as the pending_matrix might have been
altered later.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Originally, mount(8) shows a glusterfs mount like this:
glusterfs on <mp> type fuse
With this patch, mount(8) will show a glusterfs mount like this:
<volfile> on <mp> type fuse.glusterfs
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
| |
Commit for package making related files for FreeBSD and Solaris. These files
are supposed to be in repository to not loose track and update them as needed.
I will update them soon for upcoming release where we support Solaris on
ib fabric also.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
| |
glusterfs_rmdir code path wasnt implemented completely. Here is an
attempt to complete it.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
Make sure we give an allocated inode in the loc so that the underlying
callbacks are able to fill it with the relevant information about the
directory being created.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
If any of the path's components, except the basename, are missing
from the dentry cache and the corresponding lookup from the server
also fails, return an ENOENT.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
We must create the file based on the O_CREATE in the flags
instead of depending on the return status of the lookup.
This works because we've already handled O_EXCL earlier and
also handled a missing file(ENOENT)
in case this was actually an open and not create.
Adapted from Raghu's original patch.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On lookup failure, if O_CREAT is required, then we must:
1. explicitly lookup the parent directory.
2. create a new inode for the new file being opened.
This special case is required for file creation because:
1. We cannot depend on the previous lookup to have reliably looked up
the parent inode.
2. inode for the new file does not exist in the itable.
Patch adapted from Raghu's original fix.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
| |
Dont depend on the dentry and explicit lookup function, i.e.
libgf_client_path_lookup(..), to return ENOENT on not
finding a dentry. Just use op_ret = -1 as a lookup failure
status.
Patch adapted from Raghu's original fix.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This strcmp existed because of assumptions that do
not hold true since the change in libglusterfsclient
internals recently.
This is another step in fixing the seg-fault on glusterfs_create.
Patch adapted from Raghu's original fix to the problem.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The earlier case was that the explicit lookups to the server
were being sent only when the parent inode was NULL. This situation
breaks when the parent inode is available in the i- or d-cache
but the child dirent is not. In such a case, no explicit lookups
were being sent to get the missing child dirent.
Now, explicit path lookup happens even if the inode for parent or basename
is not found in the caches.
This also fixes a seg-fault occuring during glusterfs_open, in my test
case, but one that could occur almost anywhere lookup code is used.
Patch adapted from Raghu's original patch.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
libgf_client_loc_fill gets passed a name=NULL argument.
So when this function returns the filled loc argument, this loc
is actually missing the inode structure that was to be filled.
The segfault actually occurs a few lines later when
we try to access fd->flags but fd returned by fd_create is NULL
because we'd passed a NULL inode to it, i.e. the loc->inode.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
| |
This is being done for the same reason as the
previous refactoring for ordered threads.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch re-factors the exit path of an ordered worker
on a time-out. Earlier we're checking for exit permission
in such a way that required us to release and acquire
the worker lock a second time in the worker loop opening
a window wherein a new request could've been appended to the
request queue.
This patch makes the decision to exit while still holding on to the
worker lock.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
| |
If a writev fails, remember it by marking it in the fd context.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
| |
Transaction fops earlier called afr_transaction_child_died only
if an fop failed due to ENOTCONN or EBADFD. Now they consider a child
dead regardless of the reason for failure. This handles cases such
as ENOSPC.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
Added __fd_ctx_get
__fd_ctx_set
__fd_ctx_del which do not hold any lock.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
| |
nufa gets awareness about the available free-disk-space in subvolumes.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
afr_sh_mark_sources now returns:
-1 if two wise subvols conflict (split-brain)
0 if all subvols are innocent (no self-heal needed)
>0 if sources found
Also, changes to callers of afr_sh_mark_sources to handle return
value properly.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
This patch adds sanity check for the ordered worker thread index
returned from the inode's context. If the index is corrupted we
STACK_UNWIND with ECANCELED.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
| |
|
|
|
|
|
|
|
|
| |
files.
distribute gets awareness about disk-space while creating the files
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
| |
fix broken transport-type "unix"
however unix transport not working with defined transport.socket.bind-path
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
- glusterfs_fgetxattr and glusterfs_fsetxattr earlier used lookup and setxattr
fops for implementation. Change it to use fgetxattr and fsetxattr fops
instead.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
- add argument lookup_basename to __do_path_resolve which indicates whether to
lookup basename(path). This is necessary for apis like glusterfs_get, which
dont want basename(path) to be looked up by libgf_client_lookup_path.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
| |
libgf_client_path_lookup
- this simplifies the resolution of path to inode, the apis which receive
path as argument just need to call libgf_client_path_lookup for
path->inode translation.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
| |
- remove redundent lookups happening in glusterfs_get.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
| |
- port owing to changes in interface of libglusterfsclient.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|