blob: 20acca6c2685f73e2c9ffe033a79764f17246c1d [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_292) on Tue Jun 15 06:06:54 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>INodeReference.DstReference (Apache Hadoop HDFS 3.3.1 API)</title>
<meta name="date" content="2021-06-15">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="INodeReference.DstReference (Apache Hadoop HDFS 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/INodeReference.DstReference.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html" title="class in org.apache.hadoop.hdfs.server.namenode"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.WithCount.html" title="class in org.apache.hadoop.hdfs.server.namenode"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hdfs/server/namenode/INodeReference.DstReference.html" target="_top">Frames</a></li>
<li><a href="INodeReference.DstReference.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.classes.inherited.from.class.org.apache.hadoop.hdfs.server.namenode.INodeReference">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.hadoop.hdfs.server.namenode.INode">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hdfs.server.namenode</div>
<h2 title="Class INodeReference.DstReference" class="title">Class INodeReference.DstReference</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hdfs.server.namenode.INode</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html" title="class in org.apache.hadoop.hdfs.server.namenode">org.apache.hadoop.hdfs.server.namenode.INodeReference</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hdfs.server.namenode.INodeReference.DstReference</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;byte[]&gt;, org.apache.hadoop.hdfs.server.namenode.INodeAttributes, <a href="../../../../../../org/apache/hadoop/hdfs/util/Diff.Element.html" title="interface in org.apache.hadoop.hdfs.util">Diff.Element</a>&lt;byte[]&gt;</dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference</a></dd>
</dl>
<hr>
<br>
<pre>public static class <span class="typeNameLabel">INodeReference.DstReference</span>
extends <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference</a></pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hdfs.server.namenode.INodeReference">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hdfs.server.namenode.<a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference</a></h3>
<code><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.DstReference.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference.DstReference</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.WithCount.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference.WithCount</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.WithName.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference.WithName</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hdfs.server.namenode.INode">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hdfs.server.namenode.INode</h3>
<code><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INode.BlocksMapUpdateInfo.html" title="class in org.apache.hadoop.hdfs.server.namenode">INode.BlocksMapUpdateInfo</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INode.Feature.html" title="interface in org.apache.hadoop.hdfs.server.namenode">INode.Feature</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INode.QuotaDelta.html" title="class in org.apache.hadoop.hdfs.server.namenode">INode.QuotaDelta</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INode.ReclaimContext.html" title="class in org.apache.hadoop.hdfs.server.namenode">INode.ReclaimContext</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hdfs.server.namenode.INodeAttributes">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.hadoop.hdfs.server.namenode.INodeAttributes</h3>
<code><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeAttributes.SnapshotCopy.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeAttributes.SnapshotCopy</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hdfs.server.namenode.INode">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hdfs.server.namenode.INode</h3>
<code>LOG</code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.DstReference.html#DstReference-org.apache.hadoop.hdfs.server.namenode.INodeDirectory-org.apache.hadoop.hdfs.server.namenode.INodeReference.WithCount-int-">DstReference</a></span>(<a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeDirectory.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeDirectory</a>&nbsp;parent,
<a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.WithCount.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference.WithCount</a>&nbsp;referred,
int&nbsp;dstSnapshotId)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.DstReference.html#cleanSubtree-org.apache.hadoop.hdfs.server.namenode.INode.ReclaimContext-int-int-">cleanSubtree</a></span>(<a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INode.ReclaimContext.html" title="class in org.apache.hadoop.hdfs.server.namenode">INode.ReclaimContext</a>&nbsp;reclaimContext,
int&nbsp;snapshot,
int&nbsp;prior)</code>
<div class="block">Clean the subtree under this inode and collect the blocks from the descents
for further block deletion/update.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.DstReference.html#destroyAndCollectBlocks-org.apache.hadoop.hdfs.server.namenode.INode.ReclaimContext-">destroyAndCollectBlocks</a></span>(<a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INode.ReclaimContext.html" title="class in org.apache.hadoop.hdfs.server.namenode">INode.ReclaimContext</a>&nbsp;reclaimContext)</code>
<div class="block">Destroy self and clear everything! If the INode is a file, this method
collects its blocks for further block deletion.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.DstReference.html#getDstSnapshotId--">getDstSnapshotId</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hdfs.server.namenode.INodeReference">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hdfs.server.namenode.<a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference</a></h3>
<code><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#asDirectory--">asDirectory</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#asFile--">asFile</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#asReference--">asReference</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#asSymlink--">asSymlink</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#clear--">clear</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#computeContentSummary-int-org.apache.hadoop.hdfs.server.namenode.ContentSummaryComputationContext-">computeContentSummary</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#computeQuotaUsage-org.apache.hadoop.hdfs.server.blockmanagement.BlockStoragePolicySuite-byte-boolean-int-">computeQuotaUsage</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#dumpTreeRecursively-java.io.PrintWriter-java.lang.StringBuilder-int-">dumpTreeRecursively</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getAccessTime-int-">getAccessTime</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getFsPermission-int-">getFsPermission</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getFsPermissionShort--">getFsPermissionShort</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getGroupName-int-">getGroupName</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getId--">getId</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getLocalNameBytes--">getLocalNameBytes</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getLocalStoragePolicyID--">getLocalStoragePolicyID</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getModificationTime-int-">getModificationTime</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getPermissionLong--">getPermissionLong</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getPermissionStatus-int-">getPermissionStatus</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getQuotaCounts--">getQuotaCounts</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getReferredINode--">getReferredINode</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getSnapshotINode-int-">getSnapshotINode</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getStoragePolicyID--">getStoragePolicyID</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getUserName-int-">getUserName</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#isDirectory--">isDirectory</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#isFile--">isFile</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#isReference--">isReference</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#isSymlink--">isSymlink</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#setAccessTime-long-">setAccessTime</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#setLocalName-byte:A-">setLocalName</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#setModificationTime-long-">setModificationTime</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#tryRemoveReference-org.apache.hadoop.hdfs.server.namenode.INode-">tryRemoveReference</a>, <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#updateModificationTime-long-int-">updateModificationTime</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hdfs.server.namenode.INode">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hdfs.server.namenode.INode</h3>
<code>addSpaceConsumed, compareTo, computeAndConvertContentSummary, computeContentSummary, computeQuotaUsage, computeQuotaUsage, dumpTreeRecursively, dumpTreeRecursively, equals, getAccessTime, getAclFeature, getFsPermission, getFullPathName, getGroupName, getKey, getLocalName, getModificationTime, getObjectString, getParent, getParentReference, getParentString, getPathComponents, getPathComponents, getPathNames, getStoragePolicyIDForQuota, getUserName, getXAttrFeature, hashCode, isAncestorDirectory, isDeleted, isInCurrentState, isInLatestSnapshot, isLastReference, isQuotaSet, setAccessTime, setModificationTime, setParent, setParentReference, shouldRecordInSrcSnapshot, toDetailString, toString</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="DstReference-org.apache.hadoop.hdfs.server.namenode.INodeDirectory-org.apache.hadoop.hdfs.server.namenode.INodeReference.WithCount-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DstReference</h4>
<pre>public&nbsp;DstReference(<a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeDirectory.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeDirectory</a>&nbsp;parent,
<a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.WithCount.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference.WithCount</a>&nbsp;referred,
int&nbsp;dstSnapshotId)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getDstSnapshotId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDstSnapshotId</h4>
<pre>public final&nbsp;int&nbsp;getDstSnapshotId()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#getDstSnapshotId--">getDstSnapshotId</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference</a></code></dd>
</dl>
</li>
</ul>
<a name="cleanSubtree-org.apache.hadoop.hdfs.server.namenode.INode.ReclaimContext-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanSubtree</h4>
<pre>public&nbsp;void&nbsp;cleanSubtree(<a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INode.ReclaimContext.html" title="class in org.apache.hadoop.hdfs.server.namenode">INode.ReclaimContext</a>&nbsp;reclaimContext,
int&nbsp;snapshot,
int&nbsp;prior)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hdfs.server.namenode.INode</code></span></div>
<div class="block">Clean the subtree under this inode and collect the blocks from the descents
for further block deletion/update. The current inode can either resides in
the current tree or be stored as a snapshot copy.
<pre>
In general, we have the following rules.
1. When deleting a file/directory in the current tree, we have different
actions according to the type of the node to delete.
1.1 The current inode (this) is an <code>INodeFile</code>.
1.1.1 If <code> prior</code> is null, there is no snapshot taken on ancestors
before. Thus we simply destroy (i.e., to delete completely, no need to save
snapshot copy) the current INode and collect its blocks for further
cleansing.
1.1.2 Else do nothing since the current INode will be stored as a snapshot
copy.
1.2 The current inode is an <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeDirectory.html" title="class in org.apache.hadoop.hdfs.server.namenode"><code>INodeDirectory</code></a>.
1.2.1 If <code> prior</code> is null, there is no snapshot taken on ancestors
before. Similarly, we destroy the whole subtree and collect blocks.
1.2.2 Else do nothing with the current INode. Recursively clean its
children.
1.3 The current inode is a file with snapshot.
Call recordModification(..) to capture the current states.
Mark the INode as deleted.
1.4 The current inode is an <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeDirectory.html" title="class in org.apache.hadoop.hdfs.server.namenode"><code>INodeDirectory</code></a> with snapshot feature.
Call recordModification(..) to capture the current states.
Destroy files/directories created after the latest snapshot
(i.e., the inodes stored in the created list of the latest snapshot).
Recursively clean remaining children.
2. When deleting a snapshot.
2.1 To clean <code>INodeFile</code>: do nothing.
2.2 To clean <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeDirectory.html" title="class in org.apache.hadoop.hdfs.server.namenode"><code>INodeDirectory</code></a>: recursively clean its children.
2.3 To clean INodeFile with snapshot: delete the corresponding snapshot in
its diff list.
2.4 To clean <a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeDirectory.html" title="class in org.apache.hadoop.hdfs.server.namenode"><code>INodeDirectory</code></a> with snapshot: delete the corresponding
snapshot in its diff list. Recursively clean its children.
</pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#cleanSubtree-org.apache.hadoop.hdfs.server.namenode.INode.ReclaimContext-int-int-">cleanSubtree</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reclaimContext</code> - Record blocks and inodes that need to be reclaimed.</dd>
<dd><code>snapshot</code> - The id of the snapshot to delete.
<code>Snapshot.CURRENT_STATE_ID</code> means to delete the current
file/directory.</dd>
<dd><code>prior</code> - The id of the latest snapshot before the to-be-deleted snapshot.
When deleting a current inode, this parameter captures the latest
snapshot.</dd>
</dl>
</li>
</ul>
<a name="destroyAndCollectBlocks-org.apache.hadoop.hdfs.server.namenode.INode.ReclaimContext-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>destroyAndCollectBlocks</h4>
<pre>public&nbsp;void&nbsp;destroyAndCollectBlocks(<a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INode.ReclaimContext.html" title="class in org.apache.hadoop.hdfs.server.namenode">INode.ReclaimContext</a>&nbsp;reclaimContext)</pre>
<div class="block">Destroy self and clear everything! If the INode is a file, this method
collects its blocks for further block deletion. If the INode is a
directory, the method goes down the subtree and collects blocks from the
descents, and clears its parent/children references as well. The method
also clears the diff list if the INode contains snapshot diff list.
<br>
To destroy a DstReference node, we first remove its link with the
referred node. If the reference number of the referred node is &lt;= 0,
we destroy the subtree of the referred node. Otherwise, we clean the
referred node's subtree and delete everything created after the last
rename operation, i.e., everything outside of the scope of the prior
WithName nodes.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html#destroyAndCollectBlocks-org.apache.hadoop.hdfs.server.namenode.INode.ReclaimContext-">destroyAndCollectBlocks</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html" title="class in org.apache.hadoop.hdfs.server.namenode">INodeReference</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reclaimContext</code> - </dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/INodeReference.DstReference.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.html" title="class in org.apache.hadoop.hdfs.server.namenode"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/namenode/INodeReference.WithCount.html" title="class in org.apache.hadoop.hdfs.server.namenode"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hdfs/server/namenode/INodeReference.DstReference.html" target="_top">Frames</a></li>
<li><a href="INodeReference.DstReference.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.classes.inherited.from.class.org.apache.hadoop.hdfs.server.namenode.INodeReference">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.hadoop.hdfs.server.namenode.INode">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>