1. Move queued incoming XIO messages to be released into the requeue Q
for retry once resources free up
2. During connection close, freeup queued incoming XIO messages to be
released
3. Handle a case where xio_send_msg() returns -1. In cases where
xio_errno() is also -1, XIO would have queued the message(s) to the
connection queue.
Signed-off-by: Raju Kurunkad <raju.kurunkad@sandisk.com>
the file position should advance by the number of bytes written,
but the ioctx.write() function returns 0 on success
Signed-off-by: Javier Guerra <javier@guerrag.com>
we can not increase reference count of purging inodes. purging
inodes have no snapshots, so it's OK to skip them.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
When remote dentry and inode are in different snapshot realms.
The inode may not contain snapshot data for snapshot of the remote
dentry.
This issue are difficult to fix. This patch MDS print an error
instead of triggering assersion.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
If stray inode has no snapshot data, it's OK to purge it even if
it's still referenced by some snapsthots. This is because seperate
snap inodes were created for snapshots.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
Removing snapshot also increases snaprealm's sequence number.
So only using snaprealm's sequence number to decide if we should
COW dentry is too loose. This patch makes journal_cow_dentry()
also check snaprealm's snapset.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
We do not alway succeed in purging all stale snap dentries
(stale snap dentris can be in-use or have been trimmed from
cache). Updating fnode.snap_purged_thru prematurely will make
us not purge the remainning stale snap dentries. If CDir
has no cached snap dentry when fetching dirfrag, we can
guaranee that all stale snap dentries will be purged.
So we only update fnode.snap_purged_thru in this case.
Now the code that purges stale snap dentries is executed more
frequently. So this patch also make readdir not purge stale
snap dentries
Signed-off-by: Yan, Zheng <zyan@redhat.com>
When fetching dirfrag, record stale snap dentries in CDir. So that
CDir::_omap_commit can remove these stale dentires from OMAP.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
The service name for ceph rados gateway was changed to "ceph-radosgw",
the previous version of service name "radosgw" would cause a failed reload,
and finally make it impossible to write any log data to the log file.
Signed-off-by: wuxingyi <wuxingyi2015@outlook.com>
In order for an MDS to make it through stopping when
it had some strays, the other ranks that serviced
the migrate_stray renames must ensure that they
give up any cache objects that belonged to
the stopping MDS, so that the stopping MDS
can finish emptying its cache.
Fixes: #10744
Signed-off-by: John Spray <john.spray@redhat.com>
On Debian, ceph-mds was split out into its own package in
9d6013e0db, but the /var/lib/ceph/mds
directory was not moved along with the rest of the mds pieces.
The /var/lib/ceph/mds directory is only necessary if a user has
installed ceph-mds. Move it to the ceph-mds subpackage.
http://tracker.ceph.com/issues/10587 Refs: #10587
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>