| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As of now, we use 1024 bytes as the buffer for reading directory
entries. If a directory as many files, then its possible that it does
not fit into this buffer, thereby requiring more than one call to
readdir. Now suppose the last bunch of directories fit more or less
exactly int the 1024 byte buffer. If this happens, the offset
extracted by the current logic(in libgf_client_readdir) never gets
updated beyond the first entry in this last block, because the last
block's first entry always remains same. This explanation is
convoluted, I know, but I too found out the hard way.
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 commit does two things:
1. Changes glusterfs_readdir prototype to conform to the POSIX
readdir().
2. Uses a 1024-byte value instead of sizeof(struct dirent) for the
@size for libgf_client_readdir. This allows even larger names to fit
into a single readdir request to the server.
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>
|
|
|
|
|
|
|
|
| |
We want to resolve even nested symlinks when calling stat,
therefore, we need to depend on realpath-like functionality
and not just a readlink.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit does two things:
1. Ensures we go on to traverse nested symlinks by calling realpath
recursively on the symlink.
2. Makes glusterfs_realpath, a VMP-based operation, return a resolved
/real path that actually has the VMP pre-fixed to the resolved path.
If this is not done, we'll be returning a path that is valid only
within the glusterfs context, i.e. the path will point to a real
file/dir only if a glusterfs handle identifies which glusterfs context
the file is in.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
| |
The target of the symlink does not have to be interpreted in
any way. It should be sent across as it is.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
On my system, an selinux module gets inited before
booster even though the FS calls from the selinux module
get routed through our LD_PRELOAD'ed wrappers. In this
scenario, the VMP list is un-inited, resulting in a seg-fault
if it is dereferenced. The list_empty check does not help
because the pointers in the list have non-NULL values.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Some of the functions have also been moved within
the header to reflect the order in which users will
read through and try to understand how to use the lib.
For eg. the init, mount and umount functions have been moved to
the beginning to clarify how to start by init and de-initing.
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>
|
|
|
|
| |
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>
|
|
|
|
| |
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>
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The way stat cache gets updated was not consistent across
all syscalls. Consequently, I was running into a bug that
returned a 0 st_ino. The fix actually resides in the hunk
that changes the lines in libgf_client_lookup but similar
changes were also required in other users of stat cache.
This commit fixes the bug and also cleans up the way stat
cache is updated.
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One part of the glusterfsclient library requires users
to use a handle to address a particular glusterfs context.
This can become cumbersome for applications that need to use multiple
such context. For such applications, we make it easy by letting them
define virtual mount points(VMPs), which are just paths that identify
a particular glusterfs context. This is done through a new
glusterfs_mount(..) interface.
Subsequenly, any path based operations, that pre-pend a VMP before
the files and directories inside the glusterfsd export, get internally
routed to the correct glusterfs context. This helps users do away
with the need to maintain their own path-to-glusterfs_handle_t
mapping.
The old handle-based interface still exists for whoever wishes to use
it.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
The line being removed made libgf_client_readv return
a 0 on successfull return when the return should really
be the size of data read.
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>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|