We are storing rbd_snap_info_t structs, not pointers to them. But we
can also avoid the heap entirely.
This crashed pretty reliably on arm.
Signed-off-by: Sage Weil <sage@inktank.com>
No need for this field, as we already have req_state.bucket_name_str.
This saves us some memory allocation / freeing through every request
processing.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Fixes: #6606
The swift COPY operation is unique in a sense that it's a write
operation that has its destination not set by the URI target, but by a
different HTTP header. This is problematic as there are some hidden
assumptions in the code that the specified bucket/object in the URI is
the operation target. E.g., certain initialization functions, quota,
etc. Instead of creating a specialized code everywhere for this case
just turn it into a regular copy operation, that is, a PUT with
a specified copy source.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
We updated inode format version to 7 when introducing inode backtrace.
If we found a inode's format version < 7 when fetching the inode, set
the inode's backtrace_version to 0, to indicate the inode's backtrace
is out of data. When touching a inode with backtrace_version == 0, we
also update its backtrace.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
trimming inode drops a reference to the inode's parent, it may cause
the inode's parent also be trimmed. If the cap iterator 'p' happens to
point to the inode's parent and the inode's parent is trimmed, the cap
iterator 'p' become invalid.
Fix the issue by delaying removing cap from the seesion cap list.
(similar to what the kclient does)
Fixes#6599
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Using dout instead of cout creates noise and makes it more difficult for
people trying to debug a failure in test_ceph_argparse.py.
The output of get_command_descriptions is modified to only contain
parseable information and the code parsing its output
test_ceph_argparse.py is removed.
Signed-off-by: Loic Dachary <loic@dachary.org>
We may need to requeue copy ops which are cancelled as part of an acting
set change but don't change the primary. To support this, add a
"requeue" flag to cancel_copy_ops() and copy_ops(), as well as to
CopyResults. The CopyCallback is then responsible for requeuing (the
higher layers can't do so as they can't know which request actually
triggered the copy).
Signed-off-by: Greg Farnum <greg@inktank.com>
Instead of telling configure to put things in /sbin, explicitly put the
two important items (mkcephfs and mount.fuse.ceph) in /sbin via an
automake rule. This unbreaks FreeBSD 9.1 and probably others.
Based on patches originally from Alan Somers <asomers@gmail.com>, modified
for the current Makefile structure and applied to the specfile too.
Fixes: #6456
Signed-off-by: Sage Weil <sage@inktank.com>
Tested-by: Alan Somers <asomers@gmail.com>
Some options are unavailable in clang. (-Wstrict-null-sentinel,
-rdynamic)
They were reintroduced by this commit
6949d221ad
This patch fixes it.
Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>