doutc
doutc(cl, " no snap context with dirty data?\n");
doutc(cl, " oldest snapc is %p seq %lld (%d snaps)\n",
doutc(cl, " cyclic, start at %lu\n", ceph_wbc->index);
doutc(cl, " not cyclic, %lu to %lu\n",
doutc(cl, " non-head snapc, range whole\n");
doutc(cl, "!dirty or !mapping %p\n", folio);
doutc(cl, "folio snapc %p %lld != oldest %p %lld\n",
doutc(cl, "folio at %lu beyond eof %llu\n",
doutc(cl, "%llx.%llx %p idx %lu head %d/%d -> %d/%d "
doutc(cl, "end of strip unit %p\n", folio);
doutc(cl, "? %p idx %lu, folio_test_writeback %#x, "
doutc(cl, "waiting on writeback %p\n", folio);
doutc(cl, "%p !folio_clear_dirty_for_io\n", folio);
doutc(cl, "%llx.%llx will write folio %p idx %lu\n",
doutc(cl, "%llx.%llx idx %lu partial dirty page %zu~%zu\n",
doutc(cl, "got pages at %llu~%llu\n", offset, len);
doutc(cl, "got pages at %llu~%llu\n", offset, len);
doutc(cl, "%llx.%llx idx %lu full dirty page\n",
doutc(cl, "%llx.%llx (mode=%s)\n", ceph_vinop(inode),
doutc(cl, "pagevec_lookup_range_tag for tag %#x got %d\n",
doutc(cl, "reached end fbatch, trying for more\n");
doutc(cl, "folio_batch release on %d folios (%p)\n",
doutc(cl, "looping back to beginning of file\n");
doutc(cl, "%llx.%llx dend - startone, rc = %d\n", ceph_vinop(inode),
doutc(cl, " %llx.%llx folio %p is shutdown\n",
doutc(cl, " %llx.%llx folio %p snapc %p not current or oldest\n",
doutc(cl, " %llx.%llx folio %p snapc %p not current, but oldest\n",
doutc(cl, "%llx.%llx file %p folio %p %d~%d (%d)\n", ceph_vinop(inode),
doutc(cl, "%llx.%llx %llu trying to get caps\n",
doutc(cl, "%llx.%llx %llu got cap refs on %s\n", ceph_vinop(inode),
doutc(cl, "%llx.%llx %llu drop cap refs %s ret %x\n",
doutc(cl, "%llx.%llx %llu read inline data ret %x\n",
doutc(cl, "%llx.%llx %llu~%zd getting caps i_size %llu\n",
doutc(cl, "%llx.%llx %llu~%zd got cap refs on %s\n", ceph_vinop(inode),
doutc(cl, "%llx.%llx %llu~%zd dropping cap refs on %s ret %x\n",
doutc(cl, "%p %llx.%llx len %zu locked_page %p\n", inode,
doutc(cl, "%llx.%llx inline_version %llu\n", ceph_vinop(inode),
doutc(cl, "result %d subreq->len=%zu i_size=%lld\n", req->r_result,
doutc(cl, "%llx.%llx inline_version %llu = %d\n",
doutc(cl, "pool %lld ns %.*s no perm cached\n", pool,
doutc(cl, "pool %lld no perm cached\n", pool);
doutc(cl, "pool %lld ns %.*s result = %d\n", pool,
doutc(cl, "pool %lld result = %d\n", pool, err);
doutc(cl, "pool %lld no read perm\n", pool);
doutc(cl, "pool %lld no write perm\n", pool);
doutc(cl, "%llx.%llx pos=%llu orig_len=%zu len=%llu\n",
doutc(cl, "%llx.%llx failed to allocate pages, %d\n",
doutc(cl, "%llx.%llx result %d\n", ceph_vinop(inode), err);
doutc(cl, "%llx.%llx, error getting cap\n", ceph_vinop(inode));
doutc(cl, "%llx.%llx, no cache cap\n", ceph_vinop(inode));
doutc(cl, " capsnap %p snapc %p has %d dirty pages\n",
doutc(cl, " head snapc %p has %d dirty pages\n", snapc,
doutc(cl, "%llx.%llx folio %p idx %lu\n", ceph_vinop(inode), folio,
doutc(cl, "%llx.%llx folio %p not dirty?\n", ceph_vinop(inode),
doutc(cl, "%llx.%llx folio %p snapc %p not writeable - noop\n",
doutc(cl, "%llx.%llx folio at %lu beyond eof %llu\n",
doutc(cl, "%llx.%llx folio %p index %lu on %llu~%llu snapc %p seq %lld\n",
doutc(cl, "%llx.%llx %llu~%llu (%llu bytes, %sencrypted)\n",
doutc(cl, "%llx.%llx interrupted page %p\n",
doutc(cl, "%llx.%llx setting mapping error %d %p\n",
doutc(cl, "%llx.%llx cleaned page %p\n",
doutc(cl, "%llx.%llx rc %d\n", ceph_vinop(inode), rc);
doutc(cl, "%llx.%llx %p idx %lu -- already dirty\n",
doutc(cl, "unlocking %p\n", page);
doutc(cl, "%llx.%llx wrote %llu bytes cleaned %d pages\n",
doutc(cl, "inode is NULL\n");
doutc(cl, "%p from %p %llx.%llx\n", cap, inode, ceph_vinop(inode));
doutc(cl, "delaying %p removal from session %p\n", cap,
doutc(mdsc->fsc->client, "inode is NULL\n");
doutc(mdsc->fsc->client,
doutc(cl, "%p %llx.%llx cap %p session %p %s -> %s (revoking %s)\n",
doutc(cl, "%p %llx.%llx session %p\n", inode, ceph_vinop(inode),
doutc(cl, "already flushed %p, skipping\n", capsnap);
doutc(cl, "%p %llx.%llx auth cap %p not mds%d, stop\n",
doutc(cl, "%p %llx.%llx capsnap %p tid %llu %s\n", inode,
doutc(cl, "%p %llx.%llx\n", inode, ceph_vinop(inode));
doutc(cl, " no capsnap needs flush, doing nothing\n");
doutc(cl, " no auth cap (migrating?), doing nothing\n");
doutc(cl, " oops, wrong session %p mutex\n", session);
doutc(cl, "%p %llx.%llx %s dirty %s -> %s\n", inode,
doutc(cl, "%p %llx.%llx now dirty snapc %p auth cap %p\n",
doutc(mdsc->fsc->client,
doutc(cl, "flushing %s, flushing_caps %s -> %s\n",
doutc(cl, "%p %llx.%llx now !dirty\n", inode, ceph_vinop(inode));
doutc(cl, "%p %llx.%llx success\n", inode,
doutc(cl, "%p %llx.%llx failed\n", inode, ceph_vinop(inode));
doutc(cl, "%p %llx.%llx file_want %s used %s dirty %s "
doutc(cl, "trying to invalidate on %p %llx.%llx\n",
doutc(cl, "queuing invalidate\n");
doutc(cl, " mds%d cap %p used %s issued %s implemented %s revoking %s\n",
doutc(cl, "completed revocation of %s\n",
doutc(cl, "force to flush caps\n");
doutc(cl, "ctx=%p need=%d\n", ctx, need);
doutc(cl, "requesting new max_size\n");
doutc(cl, "i_size approaching max_size\n");
doutc(cl, "flushing dirty caps\n");
doutc(cl, "flushing snap caps\n");
doutc(cl, "%p %llx.%llx wait on tid %llu %llu\n", inode,
doutc(cl, "%p %llx.%llx%s\n", inode, ceph_vinop(inode),
doutc(cl, "dirty caps are %s\n", ceph_cap_string(dirty));
doutc(cl, "%p %llx.%llx%s result=%d\n", inode, ceph_vinop(inode),
doutc(cl, "%p %llx.%llx wait=%d\n", inode, ceph_vinop(inode), wait);
doutc(cl, "%p %llx.%llx cap %p tid %llu %s\n",
doutc(cl, "%p %llx.%llx capsnap %p tid %llu %s\n",
doutc(cl, "mds%d\n", session->s_mds);
doutc(cl, "mds%d\n", session->s_mds);
doutc(mdsc->fsc->client, "%p %llx.%llx flushing %s\n",
doutc(cl, "%p %llx.%llx wb %d -> %d (?)\n", inode,
doutc(cl, "%p %llx.%llx need %s want %s\n", inode,
doutc(cl, "%p %llx.%llx error filelock\n", inode,
doutc(cl, "%p %llx.%llx endoff %llu > maxsize %llu\n",
doutc(cl, "%p %llx.%llx cap_snap_pending\n", inode,
doutc(cl, "%p %llx.%llx have %s but not %s (revoking %s)\n",
doutc(cl, "%p %llx.%llx need %s but mds%d readonly\n",
doutc(cl, "%p %llx.%llx inode is shutdown\n",
doutc(cl, "%p %llx.%llx need %s > mds_wanted %s\n",
doutc(cl, "%p %llx.%llx have %s need %s\n", inode,
doutc(cl, "%p %llx.%llx ret %d got %s\n", inode,
doutc(cl, "write %p %llx.%llx at large endoff %llu, req max_size\n",
doutc(cl, "ctx=%p %d = %d used + %d resv + %d avail\n", ctx,
doutc(cl, "ctx=%p count=%d\n", ctx, ctx->count);
doutc(cl, "%p follows %llu\n", capsnap, capsnap->follows);
doutc(cl, "%p %llx.%llx wb %d -> %d (?)\n", inode,
doutc(cl, "%p %llx.%llx had %s%s%s\n", inode, ceph_vinop(inode),
doutc(cl, "on %p %llx.%llx head %d/%d -> %d/%d %s\n",
doutc(cl, "%p %llx.%llx cap_snap %p snap %lld %d/%d -> %d/%d %s%s\n",
doutc(cl, "%p %llx.%llx\n", inode, ceph_vinop(inode));
doutc(cl, "%p %llx.%llx cap %p mds%d seq %d %s\n", inode,
doutc(cl, " size %llu max_size %llu, i_size %llu\n", size,
doutc(cl, "%p %llx.%llx mode 0%o uid.gid %d.%d\n", inode,
doutc(cl, " got new xattrs v%llu on %p %llx.%llx len %d\n",
doutc(cl, "max_size %lld -> %llu\n", ci->i_max_size,
doutc(cl, "ctx=%p (%d) %d = %d used + %d resv + %d avail\n", ctx,
doutc(cl, " my wanted = %s, used = %s, dirty %s\n",
doutc(cl, "revocation: %s -> %s (revoking %s)\n",
doutc(cl, "caps unchanged: %s -> %s\n",
doutc(cl, "grant: %s -> %s\n", ceph_cap_string(cap->issued),
doutc(cl, "%p %llx.%llx mds%d seq %d on %s cleaned %s, flushing %s -> %s\n",
doutc(cl, " mds%d still flushing cap on %p %llx.%llx\n",
doutc(cl, " %p %llx.%llx now !flushing\n", inode,
doutc(cl, " %p %llx.%llx now clean\n", inode,
doutc(cl, "%p %d = %d used + %d resv + %d avail\n", cap,
doutc(cl, "removing capsnap %p, %p %llx.%llx ci %p\n", capsnap,
doutc(cl, "%p %llx.%llx ci %p mds%d follows %lld\n", inode,
doutc(cl, " cap_snap %p follows %lld "
doutc(cl, " skipping cap_snap %p follows %lld\n",
doutc(cl, "%p %llx.%llx mds%d seq %d to %lld truncate seq %d\n",
doutc(cl, " cap %llx.%llx export to peer %d piseq %u pmseq %u\n",
doutc(cl, " updating import cap %p mds%d\n", tcap,
doutc(cl, " cap %llx.%llx import from peer %d piseq %u pmseq %u\n",
doutc(cl, " remove export cap %p mds%d flags %d\n",
doutc(cl, " caps mds%d op %s ino %llx.%llx inode %p seq %u iseq %u mseq %u\n",
doutc(cl, " i don't have ino %llx\n", vino.ino);
doutc(cl, " no cap on %p ino %llx.%llx from mds%d\n",
doutc(cl, "begin\n");
doutc(cl, "caps added recently. Exiting loop");
doutc(cl, "on %p %llx.%llx\n", inode,
doutc(cl, "done\n");
doutc(cl, "begin\n");
doutc(cl, "%p %llx.%llx\n", inode, ceph_vinop(inode));
doutc(cl, "done\n");
doutc(cl, "begin\n");
doutc(cl, "done\n");
doutc(mdsc->fsc->client, "%p %llx.%llx\n", inode,
doutc(cl, "%p %llx.%llx mds%d used|dirty %s drop %s unless %s\n",
doutc(cl, "%p %llx.%llx cap %p %s -> %s, "
doutc(cl, "%p %llx.%llx cap %p %s (force)\n",
doutc(cl, "%p %llx.%llx cap %p %s (noop)\n",
doutc(cl, "%p mds%d seq %d\n", dentry, mds,
doutc(cl, "removing capsnaps, ci is %p, %p %llx.%llx\n",
doutc(cl, "removing cap %p, ci is %p, %p %llx.%llx\n",
doutc(mdsc->fsc->client, "%p %llx.%llx %lu\n", inode,
doutc(mdsc->fsc->client, "%p %llx.%llx flags 0x%lx at %lu\n",
doutc(mdsc->fsc->client, "%p %llx.%llx\n", inode, ceph_vinop(inode));
doutc(mdsc->fsc->client, "%p %llx.%llx\n", inode, ceph_vinop(inode));
doutc(cl, " marking %p NOT complete\n", inode);
doutc(cl, "%p %llx.%llx mds%d cap %llx %s seq %d\n", inode,
doutc(cl, "issued %s, mds wanted %s, actual %s, queueing\n",
doutc(cl, "inode %p %llx.%llx cap %p %s now %s seq %d mds%d\n",
doutc(cl, "%p %llx.%llx cap %p issued %s but STALE (gen %u vs %u)\n",
doutc(cl, "%p %llx.%llx cap %p issued %s\n", inode,
doutc(cl, "%p %llx.%llx cap %p mds%d\n", inode,
doutc(cl, "%p %llx.%llx cap %p mds%d NOP, iterating over caps\n",
doutc(cl, "mask %p %llx.%llx snap issued %s (mask %s)\n",
doutc(cl, "mask %p %llx.%llx cap %p issued %s (mask %s)\n",
doutc(cl, "mask %p %llx.%llx combo issued %s (mask %s)\n",
doutc(cl, "failed to parse long snapshot name: %s\n", str);
doutc(cl, "failed to parse inode number: %s\n", str);
doutc(cl, "can't find inode %s (%s)\n", inode_number, name);
doutc(cl, "base64-encoded ciphertext name = %.*s\n", elen, p);
doutc(cl, "%p %llx.%llx len %u offs %u blk %llu\n", inode,
doutc(cl, "%p %llx.%llx len %u offs %u blk %llu\n", inode,
doutc(cl, "%p %llx.%llx empty array, ret 0\n", inode,
doutc(cl, "%p %llx.%llx [%d] 0x%llx~0x%llx fret %d\n", inode,
doutc(cl, "ret %d\n", ret);
doutc(fsc->client, "begin\n");
doutc(fsc->client, "done\n");
doutc(fsc->client, "begin\n");
doutc(fsc->client, "done\n");
doutc(cl, "%p %llx.%llx/'%pd' to '%s'\n", dir, ceph_vinop(dir), dentry,
doutc(cl, "mksnap %llx.%llx/'%pd' dentry %p\n",
doutc(cl, "mkdir %llx.%llx/'%pd' dentry %p mode 0%ho\n",
doutc(cl, "%p %llx.%llx/'%pd' to '%pd'\n", dir, ceph_vinop(dir),
doutc(fsc->client, "'%s'\n", dfi->last_name);
doutc(cl, "rmsnap %llx.%llx/'%pd' dn\n", ceph_vinop(dir),
doutc(cl, "unlink/rmdir %llx.%llx/'%pd' inode %llx.%llx\n",
doutc(cl, "async unlink on %llx.%llx/'%pd' caps=%s",
doutc(cl, " folio %lu not found\n", ptr_pgoff);
doutc(cl, "%llx.%llx/'%pd' to %llx.%llx/'%pd'\n",
doutc(cl, "%p %p '%pd'\n", di, dn, dn);
doutc(cl, "%p %p '%pd' (offset 0x%llx)\n", di, dn, dn, di->offset);
doutc(cl, "dentry %p = %d\n", dentry, valid);
doutc(cl, "dir %p %llx.%llx v%u dentry %p '%pd' = %d\n", dir,
doutc(cl, "%p '%pd' inode %p offset 0x%llx nokey %d\n",
doutc(cl, "%p '%pd' inode %p is SNAPPED\n", dentry,
doutc(cl, "%p %llx.%llx v%u at %llx\n", dir, ceph_vinop(dir),
doutc(cl, "%p '%pd', lookup result=%d\n", dentry,
doutc(cl, "%p '%pd' %s\n", dentry, dentry, valid ? "valid" : "invalid");
doutc(fsc->client, "dentry %p '%pd'\n", dentry, dentry);
doutc(cl, "dentry %p '%pd'\n", dentry, dentry);
doutc(cl, "%p %llx.%llx cache idx %llu\n", dir,
doutc(cl, " %llx dentry %p %pd %p\n", di->offset,
doutc(cl, "%p %llx.%llx file %p pos %llx\n", inode,
doutc(cl, "%p %llx.%llx off 0 -> '.'\n", inode,
doutc(cl, "%p %llx.%llx off 1 -> '..'\n", inode,
doutc(cl, "fetching %p %llx.%llx frag %x offset '%s'\n",
doutc(cl, "%p %llx.%llx got and parsed readdir result=%d"
doutc(cl, "%p %llx.%llx !did_prepopulate\n", inode,
doutc(cl, "%p %llx.%llx frag %x num %d pos %llx chunk first %llx\n",
doutc(cl, "%p %llx.%llx (%d/%d) -> %llx '%.*s' %p\n", inode,
doutc(cl, "filldir stopping us...\n");
doutc(cl, "%p %llx.%llx next frag is %x\n", inode,
doutc(cl, " marking %p %llx.%llx complete and ordered\n",
doutc(cl, " marking %llx.%llx complete\n",
doutc(cl, "%p %llx.%llx file %p done.\n", inode, ceph_vinop(inode),
doutc(cl, "%p %llx.%llx dropping %p content\n",
doutc(cl, "ENOENT on snapdir %p '%pd', linking to "
doutc(cl,
doutc(cl, "%p %llx.%llx/'%pd' dentry %p\n", dir, ceph_vinop(dir),
doutc(cl, " dir %llx.%llx flags are 0x%lx\n",
doutc(cl, " dir %llx.%llx complete, -ENOENT\n",
doutc(cl, "result=%p\n", dentry);
doutc(cl, "%p %llx.%llx/'%pd' dentry %p mode 0%ho rdev %d\n",
doutc(cl, "%p %llx.%llx with parent %p %llx.%llx\n", inode,
doutc(cl, "%p %llx.%llx\n", inode, ceph_vinop(inode));
doutc(cl, "%llx.%llx\n err=%d\n", vino.ino, vino.snap, err);
doutc(cl, "%llx.%llx parent %llx hash %x err=%d", vino.ino,
doutc(fsc->client, "%llx\n", fh->ino);
doutc(cl, "child %p %p %llx.%llx err=%ld\n", child, inode,
doutc(fsc->client, "%llx\n", cfh->parent_ino);
doutc(fsc->client, "child dentry %p %p %llx.%llx err=%d\n", child,
doutc(mdsc->fsc->client, "child dentry %p %p %llx.%llx err %d %s%s\n",
doutc(cl, "%p %llx.%llx ret=%d\n", inode, ceph_vinop(inode), ret);
doutc(cl, "%p %llx.%llx regular file %p\n", inode,
doutc(cl, "on inode %p %llx.%llx %llx~%llx\n", inode,
doutc(cl, "orig %llu~%llu reading %llu~%llu", off, len,
doutc(cl, "%llu~%llu got %zd i_size %llu%s\n", off, len,
doutc(cl, "zero gap %llu~%llu\n", off + ret,
doutc(cl, "result %zd retry_op %d\n", ret, *retry_op);
doutc(cl, "on file %p %llx~%zx %s\n", file, iocb->ki_pos,
doutc(cl, "%p %llx.%llx rc %d\n", inode, ceph_vinop(inode), ret);
doutc(cl, "req %p inode %p %llx.%llx, rc %d bytes %u\n", req,
doutc(cl, "sync_direct_%s on file %p %lld~%u snapc %p seq %lld\n",
doutc(cl, "invalidate_inode_pages2_range returned %d\n",
doutc(cl, "on file %p %lld~%u snapc %p seq %lld\n", file, pos,
doutc(cl, "ino %llx %lld~%llu adjusted %lld~%llu -- %srmw\n",
doutc(cl, "write failed with %d\n", ret);
doutc(cl, "encryption failed with %d\n", ret);
doutc(cl, "write op %lld~%llu\n", write_pos, write_len);
doutc(cl, "osd write returned %d\n", ret);
doutc(cl, "invalidate_inode_pages2_range returned %d\n",
doutc(cl, "written %d\n", written);
doutc(cl, "returning %d\n", ret);
doutc(cl, "%p %llx.%llx %p 0%o (%s)\n", inode, ceph_vinop(inode),
doutc(cl, "%llu~%u trying to get caps on %p %llx.%llx\n",
doutc(cl, "sync %p %llx.%llx %llu~%u got cap refs on %s\n",
doutc(cl, "async %p %llx.%llx %llu~%u got cap refs on %s\n",
doutc(cl, "%p %llx.%llx dropping cap refs on %s = %d\n",
doutc(cl, "may hit hole, ppos %lld < size %lld, reading more\n",
doutc(cl, "%p %llx.%llx %llu~%zd getting caps. i_size %llu\n",
doutc(cl, "%p %llx.%llx %llu~%zd got cap refs on %s\n",
doutc(cl, "%p %llx.%llx %llu~%u dropping cap refs on %s\n",
doutc(cl, "%p %llx.%llx %llu~%u" "got EOLDSNAPC, retrying\n",
doutc(cl, "%p %llx.%llx mode %x, offset %llu length %llu\n",
doutc(cl, "%p %llx.%llx %p 0%o (symlink)\n", inode,
doutc(cl, "Copy beyond EOF (%llu + %zu > %llu)\n", src_off,
doutc(cl, "%p %llx.%llx %p 0%o (special)\n", inode,
doutc(cl, "returned %d\n", ret);
doutc(cl, "Invalid src/dst files layout\n");
doutc(cl, "failed to write src file (%zd)\n", ret);
doutc(cl, "failed to write dst file (%zd)\n", ret);
doutc(cl, "get_rd_wr_caps returned %d\n", err);
doutc(cl, "Failed to invalidate inode pages (%zd)\n",
doutc(cl, "Initial partial copy of %u bytes\n", src_objlen);
doutc(cl, "Failed partial copy (%zd)\n", ret);
doutc(cl, "Copied %zu bytes out of %zu\n", bytes, len);
doutc(cl, "Final partial copy of %zu bytes\n", len);
doutc(cl, "%p %llx.%llx want %s issued %s updating mds_wanted\n",
doutc(cl, "Failed partial copy (%zd)\n", bytes);
doutc(cl, "%p %llx.%llx open result=%d\n", inode, ceph_vinop(inode),
doutc(cl, "file %p is already opened\n", file);
doutc(cl, "%p %llx.%llx file %p flags %d (%d)\n", inode,
doutc(cl, "open %p fmode %d want %s issued %s using existing\n",
doutc(cl, "open fmode %d wants %s\n", fmode, ceph_cap_string(wanted));
doutc(cl, "open result=%d on %llx.%llx\n", err, ceph_vinop(inode));
doutc(cl, "unused open flags: %x\n", flags);
doutc(cl, "failed to fill inode: %d\n", ret);
doutc(cl, "d_adding new inode 0x%llx to 0x%llx/%s\n",
doutc(cl, "%p %llx.%llx dentry %p '%pd' %s flags %d mode 0%o\n",
doutc(cl, "finish_no_open on dn %p\n", dn);
doutc(cl, "finish_open on dn %p\n", dn);
doutc(cl, "result=%d\n", err);
doutc(cl, "%p %llx.%llx dir file %p\n", inode,
doutc(cl, "%p ino %llx.%llx v %llu had %llu\n", inode, ceph_vinop(inode),
doutc(cl, "%p %llx.%llx mode 0%o uid.gid %d.%d\n", inode,
doutc(cl, "max_size %lld -> %llu\n",
doutc(cl, " marking %p complete (empty)\n",
doutc(cl, " %p got snap_caps %s\n", inode,
doutc(cl, "%p duration %lu ms ttl %lu\n", dentry, duration, ttl);
doutc(cl, "dn %p (%d) spliced with %p (%d) inode %p ino %llx.%llx\n",
doutc(cl, "dn %p attached to %p ino %llx.%llx\n", dn,
doutc(cl, "%p is_dentry %d is_target %d\n", req,
doutc(cl, "reply is empty!\n");
doutc(cl, "d_lookup on parent=%p name=%.*s got %p\n",
doutc(cl, "d_alloc %p '%.*s' = %p\n", parent,
doutc(cl, " dn %p points to wrong inode %p\n",
doutc(cl, "no dentry lease or dir cap\n");
doutc(cl, " src %p '%pd' dst %p '%pd'\n",
doutc(cl, "doing d_move %p -> %p\n", req->r_old_dentry, dn);
doutc(cl, " src %p '%pd' dst %p '%pd'\n",
doutc(cl, "dn %p gets new offset %lld\n",
doutc(cl, "null dentry\n");
doutc(cl, "d_delete %p\n", dn);
doutc(cl, " %p links to %p %llx.%llx, not %llx.%llx\n",
doutc(cl, " final dn %p\n", dn);
doutc(cl, " linking snapped dir %p to dn %p\n", in,
doutc(cl, "done err=%d\n", err);
doutc(cl, "badness got %d\n", err);
doutc(cl, "dn %p idx %d\n", dn, ctl->index);
doutc(cl, "disable readdir cache\n");
doutc(cl, "no inode found for %llx.%llx\n", vino.ino, vino.snap);
doutc(cl, "got new frag %x -> %x\n", frag,
doutc(cl, "%d items under SNAPDIR dn %p\n",
doutc(cl, "%d items under dn %p\n", rinfo->dir_nr, parent);
doutc(cl, "on %llx=%llx.%llx got %p new %d\n",
doutc(cl, "d_lookup on parent=%p name=%.*s got %p\n",
doutc(cl, "d_alloc %p '%.*s' = %p\n", parent,
doutc(cl, "d_alloc badness\n");
doutc(cl, " dn %p points to wrong inode %p\n",
doutc(cl, "new_inode badness\n");
doutc(cl, " skip splicing dn %p to inode %p"
doutc(cl, "done\n");
doutc(cl, "set_size %p %llu -> %llu\n", inode, i_size_read(inode), size);
doutc(cl, "%p %llx.%llx mask=%lx\n", inode,
doutc(cl, "%p %llx.%llx already queued, mask=%lx\n",
doutc(cl, "%p %llx.%llx gen %d revoking %d\n", inode,
doutc(cl, "%p %llx.%llx gen %d successful\n", inode,
doutc(cl, "%p %llx.%llx gen %d raced, now %d revoking %d\n",
doutc(cl, "%p %llx.%llx none pending\n", inode,
doutc(cl, "%p %llx.%llx flushing snaps first\n", inode,
doutc(cl, "%p %llx.%llx (%d) to %lld\n", inode, ceph_vinop(inode),
doutc(cl, "writeback %p %llx.%llx\n", inode, ceph_vinop(inode));
doutc(cl, "size %lld -> %lld got cap refs on %s, issued %s\n",
doutc(cl, "hit hole, ppos %lld < size %lld\n", pos, i_size);
doutc(cl, "encrypt block boff/bsize %d/%lu\n", boff,
doutc(cl, "%p %llx.%llx size dropping cap refs on %s\n", inode,
doutc(cl, "Failed to alloc snapdir fscrypt_auth\n");
doutc(cl, "%p %llx.%llx issued %s\n", inode, ceph_vinop(inode),
doutc(cl, "%p %llx.%llx fscrypt_auth len %u to %u)\n", inode,
doutc(cl, "%p %llx.%llx uid %d -> %d\n", inode,
doutc(cl, "%p %llx.%llx gid %d -> %d\n", inode,
doutc(cl, "%p %llx.%llx mode 0%o -> 0%o\n", inode,
doutc(cl, "%p %llx.%llx atime %ptSp -> %ptSp\n",
doutc(cl, "%p %llx.%llx size %lld -> %lld\n", inode,
doutc(cl, "%p %llx.%llx mtime %ptSp -> %ptSp\n",
doutc(cl, "%p %llx.%llx ctime %ptSp -> %ptSp (%s)\n",
doutc(cl, "%p %llx.%llx ATTR_FILE ... hrm!\n", inode,
doutc(cl, "%p %llx.%llx result=%d (%s locally, %d remote), retry it!\n",
doutc(cl, "%p %llx.%llx result=%d (%s locally, %d remote)\n", inode,
doutc(cl, "inode %p %llx.%llx SNAPDIR\n", inode,
doutc(cl, "inode %p %llx.%llx mask %s mode 0%o\n", inode,
doutc(cl, "result=%d\n", err);
doutc(cl, "xattr_value_len:%zu, size:%zu\n", xattr_value_len, size);
doutc(cl, "result=%d\n", err);
doutc(cl, "added %p %llx.%llx frag %x\n", inode, ceph_vinop(inode), f);
doutc(cl, "frag(%x) %x splits by %d (%d ways)\n", v, t,
doutc(cl, "frag(%x) = %x\n", v, t);
doutc(cl, "removed %p %llx.%llx frag %x (no ref)\n",
doutc(cl, "cleared %p %llx.%llx frag %x referral\n",
doutc(cl, "%p %llx.%llx frag %x ndist=%d\n", inode,
doutc(cl, "%p %llx.%llx\n", inode, ceph_vinop(inode));
doutc(cl, " frag %x split by %d\n", frag->frag, frag->split_by);
doutc(fsc->client, "%p\n", &ci->netfs.inode);
doutc(cl, "%p ino %llx.%llx\n", inode, ceph_vinop(inode));
doutc(cl, " dropping residual ref to snap realm %p\n",
doutc(cl, "size %lld -> %llu\n", isize, size);
doutc(cl, "truncate_seq %u -> %u\n",
doutc(cl, "truncate_size %lld -> %llu, encrypted %d\n",
doutc(cl, "truncate_pagecache_size %lld -> %llu\n",
doutc(cl, "ctime %ptSp -> %ptSp inc w/ cap\n", &ictime, ctime);
doutc(cl, "mtime %ptSp -> %ptSp tw %d -> %d\n", &imtime, mtime,
doutc(cl, "mtime %ptSp -> %ptSp inc\n", &imtime, mtime);
doutc(cl, "atime %ptSp -> %ptSp inc\n", &iatime, atime);
doutc(cl, "%p mds time_warp_seq %llu < %u\n", inode,
doutc(cl, "file %p %p %llx.%llx already lazy\n", file, inode,
doutc(cl, "file %p %p %llx.%llx marked lazy\n", file, inode,
doutc(fsc->client, "file %p %p %llx.%llx cmd %s arg %lu\n", file,
doutc(cl, "rule: %d, op: %d, owner: %llx, pid: %llu, "
doutc(cl, "rule: %d, op: %d, pid: %llu, start: %llu, "
doutc(cl, "request %llu was interrupted\n", req->r_tid);
doutc(cl, "fl_owner: %p\n", fl->c.flc_owner);
doutc(cl, "locking locally\n");
doutc(cl, "got %d on posix_lock_file, undid lock\n",
doutc(cl, "fl_file: %p\n", fl->c.flc_file);
doutc(cl, "got %d on locks_lock_file_wait, undid lock\n",
doutc(cl, "counted %d flock locks and %d fcntl locks\n",
doutc(cl, "Have unknown lock type %d\n",
doutc(cl, "encoding %d flock and %d fcntl locks\n", num_flock_locks,
doutc(mdsc->fsc->client, "mds%d %p\n", s->s_mds, s);
doutc(cl, "%p tid %lld\n", req, req->r_tid);
doutc(mdsc->fsc->client, "%p tid %lld\n", req, req->r_tid);
doutc(cl, "using resend_mds mds%d\n", req->r_resend_mds);
doutc(cl, "using snapdir's parent %p %llx.%llx\n",
doutc(cl, "using nonsnap parent %p %llx.%llx\n",
doutc(cl, "%p %llx.%llx is_hash=%d (0x%x) mode %d\n", inode,
doutc(cl, "%p %llx.%llx frag %u mds%d (%d/%d)\n",
doutc(cl, "%p %llx.%llx frag %u mds%d (auth)\n",
doutc(cl, "%p %llx.%llx mds%d (%scap %p)\n", inode,
doutc(cl, "chose random mds%d\n", mds);
doutc(mdsc->fsc->client, "open_session to mds%d (%s)\n", mds,
doutc(cl, "to mds%d\n", target);
doutc(cl, "for mds%d (%d targets)\n", session->s_mds,
doutc(cl, "mds%d\n", session->s_mds);
doutc(cl, "mds%d\n", session->s_mds);
doutc(cl, "%p mds%d\n", session, session->s_mds);
doutc(cl, "finishing cap %p removal\n", cap);
doutc(cl, " removing cap %p, ci is %p, inode is %p\n",
doutc(fsc->client, "on %p\n", session);
doutc(cl, "session %p mds%d\n", session, session->s_mds);
doutc(cl, "ignoring mds%d (%s)\n", session->s_mds,
doutc(cl, "to mds%d (%s)\n", session->s_mds,
doutc(cl, "to mds%d (%s)s seq %lld\n", session->s_mds,
doutc(cl, "mds%d ttl now %lu, was %s, now %s\n", session->s_mds,
doutc(cl, "mds%d state %s seq %lld\n", session->s_mds,
doutc(cl, "%p %llx.%llx cap %p mine %s oissued %s used %s wanted %s\n",
doutc(cl, "%p %llx.%llx cap %p pruned, count now %d\n",
doutc(cl, "mds%d start: %d / %d, trim %d\n", session->s_mds,
doutc(cl, "mds%d done: %d / %d, trimmed %d\n",
doutc(cl, "still flushing tid %llu <= %llu\n",
doutc(cl, "want %llu\n", want_flush_tid);
doutc(cl, "ok, flushed thru %llu\n", want_flush_tid);
doutc(cl, "mds%d %p\n", session->s_mds, msg);
doutc(cl, "mds%d %p\n", session->s_mds, msg);
doutc(cl, "cap release work queued\n");
doutc(cl, "failed to queue cap release work\n");
doutc(cl, "caps reclaim work queued\n");
doutc(cl, "failed to queue caps release work\n");
doutc(cl, "caps unlink work queued\n");
doutc(cl, "failed to queue caps unlink work\n");
doutc(cl, "begin\n");
doutc(cl, "on %p %llx.%llx\n", inode,
doutc(cl, "done\n");
doutc(cl, "path+%d: %p SNAPDIR\n", pos, cur);
doutc(cl, "on %p %d built %llx '%.*s'\n", dentry, d_count(dentry),
doutc(cl, " inode %p %llx.%llx\n", rinode, ceph_ino(rinode),
doutc(cl, " dentry %p %llx/%.*s\n", rdentry, path_info->vino.ino,
doutc(cl, " path %.*s\n", path_info->pathlen, rpath);
doutc(cl, "%p tid %lld %s (attempt %d)\n", req, req->r_tid,
doutc(cl, " r_parent = %p\n", req->r_parent);
doutc(cl, "metadata corrupted\n");
doutc(cl, "timed out\n");
doutc(cl, "forced umount\n");
doutc(cl, "mdsmap err %d\n", err);
doutc(cl, "no mdsmap, waiting for map\n");
doutc(cl, "no mds or not active, waiting for map\n");
doutc(cl, "mds%d session %p state %s\n", mds, session,
doutc(cl, "session changed for auth cap %d -> %d\n",
doutc(cl, "early error %d\n", err);
doutc(cl, " wake request %p tid %llu\n", req,
doutc(cl, "kick_requests mds%d\n", mds);
doutc(cl, " kicking tid %llu\n", req->r_tid);
doutc(cl, "wait for async create returned: %d\n", err);
doutc(cl, "wait for async create returned: %d\n", err);
doutc(cl, "submit_request on %p for inode %p\n", req, dir);
doutc(cl, "do_request waiting\n");
doutc(cl, "do_request waited, got %d\n", err);
doutc(cl, "aborted request %lld with %d\n", req->r_tid, err);
doutc(cl, "do_request on %p\n", req);
doutc(cl, "do_request %p done, result %d\n", req, err);
doutc(cl, "invalidate_dir_request %p %p (complete, lease(s))\n",
doutc(cl, "on unknown tid %llu\n", tid);
doutc(cl, "handle_reply %p\n", req);
doutc(cl, "got safe reply %llu, mds%d\n", tid, mds);
doutc(cl, "tid %lld result %d\n", tid, result);
doutc(cl, "reply arrived after request %lld was aborted\n", tid);
doutc(cl, "forward tid %llu to mds%d - req dne\n", tid, next_mds);
doutc(cl, "forward tid %llu aborted, unregistering\n", tid);
doutc(cl, "forward tid %llu to mds%d (we resend)\n", tid, next_mds);
doutc(cl, "cap_auths_num %d\n", cap_auths_num);
doutc(cl, "uid %lld, num_gids %u, path %s, fs_name %s, root_squash %d, readable %d, writeable %d\n",
doutc(cl, "mds%d %s %p state %s seq %llu\n", mds,
doutc(cl, "force_session_readonly %p\n", session);
doutc(cl, "releasing r_dir_caps=%s\n", ceph_cap_string(dcaps));
doutc(cl, "releasing r_dir_caps=%s\n", ceph_cap_string(dcaps));
doutc(mdsc->fsc->client, "mds%d\n", session->s_mds);
doutc(cl, "parsed dir dname '%.*s'\n", _name_len, _name);
doutc(cl, " adding %p ino %llx.%llx cap %p %lld %s\n", inode,
doutc(cl, " adding snap realm %llx seq %lld parent %llx\n",
doutc(cl, "session %p state %s\n", session,
doutc(cl, "new %u old %u\n", newmap->m_epoch, oldmap->m_epoch);
doutc(cl, "mds%d state %s%s -> %s%s (session %s)\n",
doutc(cl, "send reconnect to export target mds.%d\n", i);
doutc(cl, " connecting to export targets of laggy mds%d\n", i);
doutc(cl, "from mds%d\n", mds);
doutc(cl, "%s, ino %llx %p %.*s\n", ceph_lease_op_name(h->action),
doutc(cl, "no inode %llx\n", vino.ino);
doutc(cl, "no parent dentry on inode %p\n", inode);
doutc(cl, "identry %p %s to mds%d\n", dentry, ceph_lease_op_name(action),
doutc(cl, "resending session close request for mds%d\n", s->s_mds);
doutc(mdsc->fsc->client, "mdsc delayed_work\n");
doutc(cl, "waiting for requests\n");
doutc(cl, "timed out on tid %llu\n", req->r_tid);
doutc(cl, "done\n");
doutc(cl, "request mdlog flush to mds%d (%s)s seq %lld\n",
doutc(cl, "fsname check fs_name=%s match.fs_name=%s\n",
doutc(cl, "match.uid %lld\n", auth->match.uid);
doutc(cl, "server path %s, tpath %s, match.path %s\n",
doutc(cl, "_tpath %s\n", _tpath);
doutc(cl, "matched\n");
doutc(cl, "tpath '%s', mask %d, caller_uid %d, caller_gid %d\n",
doutc(cl, "got %u sets of delegated inodes\n", sets);
doutc(cl, "root_squash_perms %d, rw_perms_s %p\n", root_squash_perms,
doutc(cl, "access allowed\n");
doutc(cl, "root_squash is enabled and user(%d %d) isn't allowed to write",
doutc(cl, "mds auth caps readable/writeable %d/%d while request r/w %d/%d",
doutc(cl, "access denied\n");
doutc(mdsc->fsc->client, "begin\n");
doutc(mdsc->fsc->client, "done\n");
doutc(cl, "want %lld\n", want_tid);
doutc(cl, "wait on %llu (want %llu)\n",
doutc(cl, "done\n");
doutc(cl, "sync\n");
doutc(cl, "sync want tid %lld flush_seq %lld\n", want_tid, want_flush);
doutc(cl, "begin\n");
doutc(cl, "added delegated inode 0x%llx\n", start - 1);
doutc(cl, "waiting for sessions to close\n");
doutc(cl, "done\n");
doutc(mdsc->fsc->client, "force umount\n");
doutc(mdsc->fsc->client, "stop\n");
doutc(fsc->client, "%p\n", mdsc);
doutc(fsc->client, "%p done\n", mdsc);
doutc(cl, "epoch %u\n", epoch);
doutc(cl, "epoch %u len %d\n", epoch, (int)maplen);
doutc(cl, "epoch %u <= our %u\n", epoch, mdsc->mdsmap->m_epoch);
doutc(cl, "dentry %p:%pd conflict with old %p:%pd\n", dentry, dentry,
doutc(cl, "realloc to %d\n", newmax);
doutc(cl, "mds%d\n", mds);
doutc(cl, "%d/%d %lld mds%d.%d %s %s%s\n", i+1, n, global_id,
doutc(cl, "got incorrect state(%s)\n",
doutc(cl, "m_enabled: %d, m_damaged: %d, m_num_laggy: %d\n",
doutc(cl, "success epoch %u\n", m->m_epoch);
doutc(cl, "Can't lookup inode %llx (err: %ld)\n", realm->ino,
doutc(cl, "from mds%d op %s split %llx tracelen %d\n", mds,
doutc(cl, "splitting snap_realm %llx %p\n", realm->ino, realm);
doutc(cl, " leaving %p %llx.%llx in newer realm %llx %p\n",
doutc(cl, " will move %p %llx.%llx to split realm %llx %p\n",
doutc(cl, "found snapid map %llx -> %x\n", exist->snap,
doutc(cl, "found snapid map %llx -> %x\n", exist->snap,
doutc(cl, "create snapid map %llx -> %x\n", sm->snap, sm->dev);
doutc(cl, "trim snapid map %llx -> %x\n", sm->snap, sm->dev);
doutc(mdsc->fsc->client, "%llx %p\n", realm->ino, realm);
doutc(cl, "%llx %p\n", r->ino, r);
doutc(cl, "%p %llx\n", realm, realm->ino);
doutc(cl, "%llx %p: %llx %p -> %llx %p\n", realm->ino, realm,
doutc(cl, "%llx %p: %p seq %lld (%u snaps) (unchanged)\n",
doutc(cl, "%llx %p: %p seq %lld (%u snaps)\n", realm->ino, realm,
doutc(cl, "%llx %p, %s\n", realm->ino, realm,
doutc(cl, "%p %llx.%llx already pending\n", inode,
doutc(cl, "%p %llx.%llx nothing dirty|writing\n", inode,
doutc(cl, "%p %llx.%llx no new_snap|dirty_page|writing\n",
doutc(cl, "%p %llx.%llx cap_snap %p queuing under %p %s %s\n",
doutc(cl, "%p %llx.%llx cap_snap %p snapc %p seq %llu used WR,"
doutc(cl, " new snapc is %p\n", new_snapc);
doutc(cl, "%p %llx.%llx cap_snap %p snapc %p %llu %s "
doutc(cl, "%p %llx.%llx cap_snap %p snapc %p %llu %s "
doutc(cl, "%p %llx.%llx cap_snap %p snapc %p %llu %s s=%llu\n",
doutc(cl, "%p %llx inode\n", realm, realm->ino);
doutc(cl, "%p %llx done\n", realm, realm->ino);
doutc(cl, "deletion=%d\n", deletion);
doutc(cl, "updating %llx %p %lld -> %lld\n", realm->ino,
doutc(cl, "%llx %p seq %lld new\n", realm->ino, realm,
doutc(cl, "%llx %p seq %lld unchanged\n", realm->ino, realm,
doutc(cl, "done with %llx %p, rebuild_snapcs=%d, %p %p\n", realm->ino,
doutc(cl, "begin\n");
doutc(cl, "done\n");
doutc(fsc->client, "starting forced umount\n");
doutc(cl, "opening '%s'\n", path);
doutc(cl, "success\n");
doutc(cl, "success, root dentry is %p\n", root);
doutc(cl, "mount start %p\n", fsc);
doutc(cl, "mount opening path '%s'\n", path);
doutc(cl, "mount success\n");
doutc(fsc->client, "done\n");
doutc(cl, "%p\n", s);
doutc(cl, "%p\n", sb);
doutc(cl, "monitor(s)/mount options don't match\n");
doutc(cl, "fsid doesn't match\n");
doutc(cl, "flags differ\n");
doutc(cl, "client is blocklisted (and CLEANRECOVER is not set)\n");
doutc(cl, "client has been forcibly unmounted\n");
doutc(cl, "(non-blocking)\n");
doutc(cl, "(non-blocking) done\n");
doutc(fsc->client, "root %p inode %p ino %llx.%llx\n", res,
doutc(cl, "(blocking)\n");
doutc(cl, "(blocking) done\n");
doutc(cl, "%p\n", s);
doutc(fsc->client, "begin\n");
doutc(fsc->client, "done\n");
doutc(fsc->client, "begin\n");
doutc(fsc->client, "%p\n", fsc);
doutc(cl, "%p %llx.%llx name '%s' ver=%lld index_ver=%lld\n", inode,
doutc(cl, "%p %llx.%llx ver=%lld index_ver=%lld\n", inode,
doutc(cl, "name %s value size %zu\n", name, size);
doutc(cl, "xattr.ver (before): %lld\n", ci->i_xattrs.version);
doutc(cl, "xattr.ver (after): %lld\n", ci->i_xattrs.version);
doutc(cl, "sync version: %llu size: %d max: %llu\n",
doutc(cl, "%p %llx.%llx name '%s' issued %s\n", inode,
doutc(cl, " pre-allocating new blob size=%d\n",
doutc(cl, "count=%d\n", ci->i_xattrs.count);
doutc(cl, "p=%p\n", p);
doutc(cl, "added %p %llx.%llx xattr %p %.*s=%.*s%s\n", inode,
doutc(cl, "%s found %.*s%s\n", name, len, xattr->val,
doutc(cl, "%s not found\n", name);
doutc(cl, "%p\n", &ci->netfs.inode);
doutc(cl, "count=%d\n", ci->i_xattrs.count);
doutc(cl, "dest=%s %p (%s) (%d/%d)\n", dest, xattr, xattr->name,
doutc(cl, "p=%p\n", p);
doutc(cl, "next p=%p (%.*s)\n", p, xattr->name_len, xattr->name);
doutc(cl, "len=%d\n",
doutc(cl, "c=%d names.size=%d vals.size=%d\n", ci->i_xattrs.count,
doutc(cl, "%p %llx.%llx\n", inode, ceph_vinop(inode));