"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "xlators/storage/posix/src/posix-inode-fd-ops.c" between
glusterfs-9.1.tar.gz and glusterfs-9.2.tar.gz

About: GlusterFS is a network/cluster filesystem. The storage server (or each in a cluster) runs glusterfsd and the clients use mount command or glusterfs client to mount the exported filesystem. Release series 9.x (latest version).

posix-inode-fd-ops.c  (glusterfs-9.1):posix-inode-fd-ops.c  (glusterfs-9.2)
skipping to change at line 2921 skipping to change at line 2921
#else #else
filler.flags = flags; filler.flags = flags;
#endif #endif
op_ret = dict_foreach(dict, _handle_setxattr_keyvalue_pair, &filler); op_ret = dict_foreach(dict, _handle_setxattr_keyvalue_pair, &filler);
if (op_ret < 0) { if (op_ret < 0) {
op_errno = -op_ret; op_errno = -op_ret;
op_ret = -1; op_ret = -1;
goto out; goto out;
} }
ret = dict_get_int8(xdata, "sync_backend_xattrs", &sync_backend_xattrs); if (xdata) {
if (ret) { ret = dict_get_int8(xdata, "sync_backend_xattrs", &sync_backend_xattrs);
gf_msg_debug(this->name, -ret, "Unable to get sync_backend_xattrs"); if (ret) {
gf_msg_debug(this->name, -ret, "Unable to get sync_backend_xattrs");
}
} }
if (sync_backend_xattrs) { if (sync_backend_xattrs) {
/* List all custom xattrs */ /* List all custom xattrs */
subvol_xattrs = dict_new(); subvol_xattrs = dict_new();
if (!subvol_xattrs) if (!subvol_xattrs)
goto out; goto out;
ret = dict_set_int32_sizen(xdata, "list-xattr", 1); ret = dict_set_int32_sizen(xdata, "list-xattr", 1);
if (ret) { if (ret) {
skipping to change at line 5756 skipping to change at line 5758
if (!dir) { if (!dir) {
gf_msg(this->name, GF_LOG_WARNING, EINVAL, P_MSG_PFD_NULL, gf_msg(this->name, GF_LOG_WARNING, EINVAL, P_MSG_PFD_NULL,
"dir is NULL for fd=%p", fd); "dir is NULL for fd=%p", fd);
op_errno = EINVAL; op_errno = EINVAL;
goto out; goto out;
} }
/* When READDIR_FILTER option is set to on, we can filter out /* When READDIR_FILTER option is set to on, we can filter out
* directory's entry from the entry->list. * directory's entry from the entry->list.
*/ */
ret = dict_get_int32(dict, GF_READDIR_SKIP_DIRS, &skip_dirs); ret = dict_get_int32_sizen(dict, GF_READDIR_SKIP_DIRS, &skip_dirs);
LOCK(&fd->lock); LOCK(&fd->lock);
{ {
/* posix_fill_readdir performs multiple separate individual /* posix_fill_readdir performs multiple separate individual
readdir() calls to fill up the buffer. readdir() calls to fill up the buffer.
In case of NFS where the same anonymous FD is shared between In case of NFS where the same anonymous FD is shared between
different applications, reading a common directory can different applications, reading a common directory can
result in the anonymous fd getting re-used unsafely between result in the anonymous fd getting re-used unsafely between
the two readdir requests (in two different io-threads). the two readdir requests (in two different io-threads).
 End of changes. 2 change blocks. 
4 lines changed or deleted 6 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)