Commit 2933415d authored by Christian Mohrbacher's avatar Christian Mohrbacher

updated to release 6.15

parent c9020c1f
Username=Username
Password=Password
Login=Login
If you need support please contact support@beegfs.com.=If\ you\ need\ support\ please\ contact\ support@beegfs.com.
If\ you\ need\ support\ please\ contact\ support@beegfs.com.=If you need support please contact support@beegfs.com.
BeeGFS\ is\ a\ project\ of\ the\ Fraunhofer\ ITWM,=BeeGFS is a project of the Fraunhofer ITWM,
Competence\ Center\ for\ High\ Performance\ Computing.\ =Competence Center for High Performance Computing.
Close=Close
......@@ -36,8 +36,8 @@ Windows=Windows
Tile=Tile
Minimize\ All=Minimize All
About=About
Please\ insert\ the\ names\ of\ the\ hosts\ to\ add\.\\n\\nCou\ can\ leave\ remaining\ fields\ blank\.=Please insert the names of the hosts to add.nnCou can leave remaining fields blank.
Please\ choose\ the\ file\ to\ import\.\\n\\nThe\ file\ must\ contain\ one\ host\ per\ line\.=Please choose the file to import.nnThe file must contain one host per line.
Please\ insert\ the\ names\ of\ the\ hosts\ to\ add\.\n\nYou\ can\ leave\ remaining\ fields\ blank\.=Please insert the names of the hosts to add.\n\nYou can leave remaining fields blank.
Please\ choose\ the\ file\ to\ import\.\n\nThe\ file\ must\ contain\ one\ host\ per\ line\.=Please choose the file to import.\n\nThe file must contain one host per line.
Install=Install
Install\ BeeGFS=Install BeeGFS
Reload=Reload
......@@ -66,15 +66,6 @@ Save=Save
Reload\ from\ server=Reload from server
Next\ \-\>=Next ->
Use\ for\ all=Use for all
storeMetaDirectory=storeMetaDirectory
connMetaPortTCP=connMetaPortTCP
storeStorageDirectory=storeStorageDirectory
connStoragePortTCP=connStoragePortTCP
connClientPortTCP=connClientPortTCP
clientMount=clientMount
connHelperdPortTCP=connHelperdPortTCP
storeMgmtdDirectory=storeMgmtdDirectory
connMgmtdPortTCP=connMgmtdPortTCP
Create\ basic\ configuration=Create basic configuration
Define\ roles=Define roles
Configure\ Infiniband=Configure Infiniband
......@@ -304,7 +295,7 @@ If\ a\ custom\ kernel\ is\ used\ ignore\ this\ warning\!=If a custom kernel is u
The\ kernel\ build\ directory\ is\ missing\ on\ the\ =The kernel build directory is missing on the
following\ nodes\:=following nodes:
Installation\ cannot\ be\ performed\ due\ to\ communication\ problems=Installation cannot be performed due to communication problems
Successfully\ installed\ =\u6210\u529F\u5B89\u88C5
Successfully\ installed\ =Successfully installed
on\ all\ hosts=on all hosts
Failed\ to\ install\ =Failed to install
on\ host\ =on host
......@@ -530,9 +521,9 @@ meta=meta
Passwordless\ autologin\ for\ Information\ user\ successfully\ enabled=Passwordless autologin for Information user successfully enabled
Operation\ performed=Operation performed
Passwordless\ autologin\ for\ Information\ user\ successfully\ disabled=Passwordless autologin for Information user successfully disabled
Metadata\ nodes\ overview\ \(Group\ \:\ \"\ \+\ group\ \+\ \"\)=Metadata nodes overview (Group : " + group + ")
Metadata\ nodes\ overview\ \(Group\ \:\ \{0\}\)=Metadata nodes overview (Group : {0})
nodes\ status=nodes status
nodes\ status\ \(Group\ \:\ \"\ \+\ this\.group\ \+\ \"\)=nodes status (Group : " + this.group + ")
nodes\ status\ \(Group\ \:\ \{0\}\)=nodes status (Group : {0})
waiting\ for\ data\ \.\.\.=waiting for data ...
Use\ Hostname=Use Hostname
Use\ DNS\ resolution\ from\ the\ GUI\ host\.=Use DNS resolution from the GUI host.
......
......@@ -36,8 +36,8 @@ Windows=\u7A97\u53E3
Tile=\u6807\u9898
Minimize\ All=\u6700\u5C0F\u5316
About=\u5173\u4E8E
Please\ insert\ the\ names\ of\ the\ hosts\ to\ add\.\\n\\nCou\ can\ leave\ remaining\ fields\ blank\.=\u8BF7\u8F93\u5165\u8981\u6DFB\u52A0\u7684\u4E3B\u673A\u540D
Please\ choose\ the\ file\ to\ import\.\\n\\nThe\ file\ must\ contain\ one\ host\ per\ line\.=\u8BF7\u9009\u62E9\u8981\u5BFC\u5165\u7684\u6587\u4EF6
Please\ insert\ the\ names\ of\ the\ hosts\ to\ add\.\n\nYou\ can\ leave\ remaining\ fields\ blank\.=\u8BF7\u8F93\u5165\u8981\u6DFB\u52A0\u7684\u4E3B\u673A\u540D
Please\ choose\ the\ file\ to\ import\.\n\nThe\ file\ must\ contain\ one\ host\ per\ line\.=\u8BF7\u9009\u62E9\u8981\u5BFC\u5165\u7684\u6587\u4EF6
Install=\u5B89\u88C5
Install\ BeeGFS=\u5B89\u88C5BeeGFS
Reload=\u91CD\u8F7D
......@@ -66,15 +66,6 @@ Save=\u4FDD\u5B58
Reload\ from\ server=\u91CD\u8F7D\u670D\u52A1\u5668
Next\ \-\>=\u4E0B\u4E00\u6B65->
Use\ for\ all=\u4F7F\u7528\u6240\u6709
storeMetaDirectory=\u5B58\u50A8\u5143\u6570\u636E\u76EE\u5F55
connMetaPortTCP=\u8FDE\u63A5\u6E90\u7AEF\u53E3TCP
storeStorageDirectory=\u5B58\u50A8\u76EE\u5F55
connStoragePortTCP=\u8FDE\u63A5\u5B58\u50A8\u7AEF\u53E3TCP
connClientPortTCP=\u8FDE\u63A5\u5BA2\u6237\u7AEF\u53E3TCP
clientMount=\u5BA2\u6237\u7AEF\u6302\u8F7D
connHelperdPortTCP=\u8FDE\u63A5\u8F85\u52A9\u7AEF\u53E3TCP
storeMgmtdDirectory=\u5B58\u50A8\u7BA1\u7406\u76EE\u5F55
connMgmtdPortTCP=\u8FDE\u63A5\u7BA1\u7406\u7AEF\u53E3TCP
Create\ basic\ configuration=\u521B\u5EFA\u57FA\u672C\u914D\u7F6E
Define\ roles=\u5B9A\u4E49\u89D2\u8272
Configure\ Infiniband=\u914D\u7F6EInfiniband
......@@ -530,9 +521,9 @@ meta=\u5143
Passwordless\ autologin\ for\ Information\ user\ successfully\ enabled=\u65E0\u5BC6\u7801\u81EA\u52A8\u767B\u5F55\u8BBE\u7F6E\u6210\u529F
Operation\ performed=\u8BBE\u7F6E\u6210\u529F
Passwordless\ autologin\ for\ Information\ user\ successfully\ disabled=\u65E0\u5BC6\u7801\u81EA\u52A8\u767B\u5F55\u7981\u7528\u6210\u529F
Metadata\ nodes\ overview\ \(Group\ \:\ \"\ \+\ group\ \+\ \"\)=\u5143\u6570\u636E\u8282\u70B9\u6982\u8FF0 (Group : " + group + ")
Metadata\ nodes\ overview\ \(Group\ \:\ \{0\}\)=\u5143\u6570\u636E\u8282\u70B9\u6982\u8FF0 (Group : {0})
nodes\ status=\u8282\u70B9\u72B6\u6001
nodes\ status\ \(Group\ \:\ \"\ \+\ this\.group\ \+\ \"\)=\u8282\u70B9\u72B6\u6001 (Group : " + this.group +")
nodes\ status\ \(Group\ \:\ \{0\}\)=\u8282\u70B9\u72B6\u6001 (Group : {0})
waiting\ for\ data\ \.\.\.=\u7B49\u5F85\u6570\u636E\u4E2D...
Use\ Hostname=\u4F7F\u7528\u4E3B\u673A\u540D
Use\ DNS\ resolution\ from\ the\ GUI\ host\.=\u5728\u56FE\u5F62\u5316\u754C\u9762\u7684\u4E3B\u673A\u4E0A\u4F7F\u7528DNS\u89E3\u6790.
......
......@@ -33,7 +33,7 @@ public class Config
// set default values
private String admonHost = null;
private String admonLocal = null;
private String admonLocal = null;
private String logFile = null;
private String cfgFile = null;
private int admonHttpPort = 0;
......@@ -97,7 +97,6 @@ public class Config
if(key.equalsIgnoreCase(PropertyEnum.PROPERTY_ADMON_GUI_LOCAL.getArgsKey()))
{
this.admonLocal = value;
System.out.println("##"+value+"##");
}
else
if(key.equalsIgnoreCase(PropertyEnum.PROPERTY_ADMON_GUI_LOG_FILE.getArgsKey()))
......@@ -628,7 +627,7 @@ public class Config
builder.append(String.format("%-50s%s%n",
PropertyEnum.PROPERTY_ADMON_GUI_LOCAL.getArgsKey() +
"=English|Chinese", "The local is used to set the language environment"));
"=English|Chinese", "The locale is used to set the language environment"));
builder.append(String.format("%-50s%s%n",
PropertyEnum.PROPERTY_ADMON_GUI_RESOLUTION.getArgsKey() +
......
......@@ -497,7 +497,7 @@ public class MainWindow extends javax.swing.JFrame
private void jPasswordFieldQuickAdminActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jPasswordFieldQuickAdminActionPerformed
try
{
String username = Main.getLocal().getString("Administrator");
String username = "Administrator";
String pw = CryptTk.getMD5(jPasswordFieldQuickAdmin.getPassword());
if (!loginDialog.doLogin(username, pw))
{
......
......@@ -117,7 +117,7 @@ public class JFrameAddHosts extends javax.swing.JFrame
jTextArea1.setColumns(20);
jTextArea1.setLineWrap(true);
jTextArea1.setRows(5);
jTextArea1.setText(Main.getLocal().getString("Please insert the names of the hosts to add.\n\nCou can leave remaining fields blank."));
jTextArea1.setText(Main.getLocal().getString("Please insert the names of the hosts to add.\n\nYou can leave remaining fields blank."));
jTextArea1.setWrapStyleWord(true);
jTextArea1.setBorder(null);
jScrollPaneDescription.setViewportView(jTextArea1);
......
......@@ -342,14 +342,14 @@ public class JInternalFrameInstall extends javax.swing.JInternalFrame implements
if (failed.isEmpty())
{
this.getDialog().
addLine(Main.getLocal().getString("Successfully installed ") + packageDesc + Main.getLocal().getString("on all hosts"), false);
addLine(Main.getLocal().getString("Successfully installed ") + " " + packageDesc + " " + Main.getLocal().getString("on all hosts"), false);
return false;
}
else
{
for (String node : failed)
{
this.getDialog().addLine(Main.getLocal().getString("Failed to install ") + packageDesc + Main.getLocal().getString("on host ") +
this.getDialog().addLine(Main.getLocal().getString("Failed to install ") + " " + packageDesc + " " + Main.getLocal().getString("on host ") +
node, true);
}
return true;
......
......@@ -390,7 +390,7 @@ public class JInternalFrameInstallationConfig extends javax.swing.JInternalFrame
TreeMap<String, String> config = parser.getTreeMap();
if (config.get("storeMetaDirectory") != null)
{
jTextFieldMetaDir.setText(config.get(Main.getLocal().getString("storeMetaDirectory")));
jTextFieldMetaDir.setText(config.get("storeMetaDirectory"));
}
else
{
......@@ -398,7 +398,7 @@ public class JInternalFrameInstallationConfig extends javax.swing.JInternalFrame
}
if (config.get("connMetaPortTCP") != null)
{
jTextFieldMetaPort.setText(config.get(Main.getLocal().getString("connMetaPortTCP")));
jTextFieldMetaPort.setText(config.get("connMetaPortTCP"));
}
else
{
......@@ -406,7 +406,7 @@ public class JInternalFrameInstallationConfig extends javax.swing.JInternalFrame
}
if (config.get("storeStorageDirectory") != null)
{
jTextFieldStorageDir.setText(config.get(Main.getLocal().getString("storeStorageDirectory")));
jTextFieldStorageDir.setText(config.get("storeStorageDirectory"));
}
else
{
......@@ -414,7 +414,7 @@ public class JInternalFrameInstallationConfig extends javax.swing.JInternalFrame
}
if (config.get("connStoragePortTCP") != null)
{
jTextFieldStoragePort.setText(config.get(Main.getLocal().getString("connStoragePortTCP")));
jTextFieldStoragePort.setText(config.get("connStoragePortTCP"));
}
else
{
......@@ -422,7 +422,7 @@ public class JInternalFrameInstallationConfig extends javax.swing.JInternalFrame
}
if (config.get("connClientPortTCP") != null)
{
jTextFieldClientPort.setText(config.get(Main.getLocal().getString("connClientPortTCP")));
jTextFieldClientPort.setText(config.get("connClientPortTCP"));
}
else
{
......@@ -430,7 +430,7 @@ public class JInternalFrameInstallationConfig extends javax.swing.JInternalFrame
}
if (config.get("clientMount") != null)
{
jTextFieldClientMount.setText(config.get(Main.getLocal().getString("clientMount")));
jTextFieldClientMount.setText(config.get("clientMount"));
}
else
{
......@@ -438,7 +438,7 @@ public class JInternalFrameInstallationConfig extends javax.swing.JInternalFrame
}
if (config.get("connHelperdPortTCP") != null)
{
jTextFieldHelperdPort.setText(config.get(Main.getLocal().getString("connHelperdPortTCP")));
jTextFieldHelperdPort.setText(config.get("connHelperdPortTCP"));
}
else
{
......@@ -446,7 +446,7 @@ public class JInternalFrameInstallationConfig extends javax.swing.JInternalFrame
}
if (config.get("storeMgmtdDirectory") != null)
{
jTextFieldMgmtdDir.setText(config.get(Main.getLocal().getString("storeMgmtdDirectory")));
jTextFieldMgmtdDir.setText(config.get("storeMgmtdDirectory"));
}
else
{
......@@ -455,7 +455,7 @@ public class JInternalFrameInstallationConfig extends javax.swing.JInternalFrame
if (config.get("connMgmtdPortTCP") != null)
{
jTextFieldMgmtdPort.setText(config.get(Main.getLocal().getString("connMgmtdPortTCP")));
jTextFieldMgmtdPort.setText(config.get("connMgmtdPortTCP"));
}
else
{
......
......@@ -125,23 +125,23 @@ public class JInternalFrameUninstall extends javax.swing.JInternalFrame implemen
getDialog().addLine(Main.getLocal().getString("Connection to all hosts available."), false);
if (!stop)
{
errorOccured = errorOccured || doUninstall(Main.getLocal().getString("client"), Main.getLocal().getString("BeeGFS client"));
errorOccured = errorOccured || doUninstall("client", Main.getLocal().getString("BeeGFS client"));
}
if (!stop)
{
errorOccured = errorOccured || doUninstall(Main.getLocal().getString("meta"), Main.getLocal().getString("BeeGFS meta server"));
errorOccured = errorOccured || doUninstall("meta", Main.getLocal().getString("BeeGFS meta server"));
}
if (!stop)
{
errorOccured = errorOccured || doUninstall(Main.getLocal().getString("storage"), Main.getLocal().getString("BeeGFS storage server"));
errorOccured = errorOccured || doUninstall("storage", Main.getLocal().getString("BeeGFS storage server"));
}
if (!stop)
{
errorOccured = errorOccured || doUninstall(Main.getLocal().getString("mgmtd"), Main.getLocal().getString("BeeGFS management daemon"));
errorOccured = errorOccured || doUninstall("mgmtd", Main.getLocal().getString("BeeGFS management daemon"));
}
if (!stop)
{
errorOccured = errorOccured || doUninstall(Main.getLocal().getString("opentk"), Main.getLocal().getString("BeeGFS open TK library"));
errorOccured = errorOccured || doUninstall("opentk", Main.getLocal().getString("BeeGFS open TK library"));
}
}
else
......
......@@ -85,7 +85,7 @@ public class JInternalFrameNotifications extends javax.swing.JInternalFrame
jComboBoxSendType.setSelectedIndex(Integer.parseInt(data.get("sendType")));
lastSendmailPath = data.get("sendmailPath");
lastSmtpServer = data.get(Main.getLocal().getString("smtpServer"));
lastSmtpServer = data.get("smtpServer");
if(jComboBoxSendType.getSelectedIndex() == SMTP_SEND_TYPE_SOCKET.ordinal())
{
jTextFieldSmtp.setText(lastSmtpServer);
......@@ -102,10 +102,10 @@ public class JInternalFrameNotifications extends javax.swing.JInternalFrame
setMailSettings(jCheckBoxEnable.isSelected(), true);
setLabelAfterComboboxChanged();
jTextFieldSender.setText(data.get(Main.getLocal().getString("sender")));
jTextFieldRecipient.setText(data.get(Main.getLocal().getString("recipient")));
jTextFieldDelay.setText(data.get(Main.getLocal().getString("delay")));
jTextFieldResend.setText(data.get(Main.getLocal().getString("resendTime")));
jTextFieldSender.setText(data.get("sender"));
jTextFieldRecipient.setText(data.get("recipient"));
jTextFieldDelay.setText(data.get("delay"));
jTextFieldResend.setText(data.get("resendTime"));
boolean overrideActive = Boolean.parseBoolean(data.get("overrideActive"));
setMailSettings(!overrideActive, false);
......@@ -225,7 +225,7 @@ public class JInternalFrameNotifications extends javax.swing.JInternalFrame
try
{
TreeMap<String, String> data = parser.getTreeMap();
jTextFieldScript.setText(data.get(Main.getLocal().getString("scriptPath")));
jTextFieldScript.setText(data.get("scriptPath"));
}
catch (CommunicationException e)
{
......
......@@ -688,7 +688,7 @@ public class JInternalFrameStriping extends javax.swing.JInternalFrame
gridX++;
gbcIDs.gridx = gridX;
gbcIDs.gridy = gridY;
jLabelMetaID = new JLabel(parser.getValue(Main.getLocal().getString("meta")));
jLabelMetaID = new JLabel(parser.getValue("meta"));
jPanelLocation.add(jLabelMetaID, gbcIDs);
......
......@@ -26,6 +26,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import java.text.MessageFormat;
/**
*
......@@ -62,7 +63,7 @@ public class JInternalFrameMetaNodesOverview extends javax.swing.JInternalFrame
{
this.group = group;
initComponents();
setTitle(Main.getLocal().getString("Metadata nodes overview (Group : " + group + ")"));
setTitle(MessageFormat.format(Main.getLocal().getString("Metadata nodes overview (Group : {0})"), group));
setFrameIcon(GuiTk.getFrameIcon());
}
......
......@@ -16,6 +16,7 @@ import java.util.TreeMap;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import java.text.MessageFormat;
import com.beegfs.admon.gui.program.Main;
......@@ -415,7 +416,7 @@ public class JInternalFrameNodeStatus extends javax.swing.JInternalFrame impleme
}
else
{
newTitle = this.nodeType.type() + Main.getLocal().getString("nodes status (Group : " + this.group + ")");
newTitle = this.nodeType.type() + MessageFormat.format(Main.getLocal().getString("nodes status (Group : {0})"), this.group);
}
return newTitle;
}
......
......@@ -36,9 +36,9 @@ public class Main
private static final double JAVA_MIN_VERSION = 1.7;
private static final String BEEGFS_VERSION = "@VERSION@";
private static Locale locale;
private static Locale locale;
private static ResourceBundle zh;
private static ResourceBundle zh;
/**
* @param args the command line arguments
......@@ -84,26 +84,16 @@ public class Main
System.exit(1);
}
Main.locale = new Locale("en", "US");
Main.zh = ResourceBundle.getBundle("Message", locale);
if(initConfigFromFile())
{
System.out.println("##"+config.getAdmonLocal()+"##");
if(config.getAdmonLocal().equals( "Chinese"))
{
Main.locale = new Locale("zh", "CN");
Main.zh = ResourceBundle.getBundle("Message", locale);
}
else
{
Main.locale = new Locale("en", "US");
Main.zh = ResourceBundle.getBundle("Message", locale);
}
//create session
session = new Session();
......@@ -136,13 +126,13 @@ public class Main
return Main.config;
}
public static ResourceBundle getLocal()
{
return Main.zh;
}
public static Session getSession()
{
......
......@@ -58,8 +58,6 @@ bool RWPagesWork_init(RWPagesWork* this, App* app, struct inode* inode,
if (unlikely(referenceRes != FhgfsOpsErr_SUCCESS) )
return false;
ihold(inode); // make sure the inode does not get evicted while we are reading/writing the file
#ifdef KERNEL_HAS_2_PARAM_INIT_WORK
INIT_WORK(&this->kernelWork, RWPagesWork_process);
#else
......@@ -176,24 +174,10 @@ void RWPagesWork_processQueue(RWPagesWork* this)
App* app = this->app;
Logger* log = App_getLogger(app);
FhgfsInode* fhgfsInode = BEEGFS_INODE(this->inode);
ssize_t rwRes;
if (this->rwType == BEEGFS_RWTYPE_WRITE)
FhgfsInode_incWriteBackCounter(fhgfsInode);
rwRes = FhgfsOpsRemoting_rwChunkPageVec(this->pageVec, &this->ioInfo, this->rwType);
if (this->rwType == BEEGFS_RWTYPE_WRITE)
{
spin_lock(&this->inode->i_lock);
FhgfsInode_setLastWriteBackOrIsizeWriteTime(fhgfsInode);
FhgfsInode_decWriteBackCounter(fhgfsInode);
FhgfsInode_unsetNoIsizeDecrease(fhgfsInode);
spin_unlock(&this->inode->i_lock);
}
if (unlikely(rwRes < 0) )
LOG_DEBUG_FORMATTED(log, 1, __func__, "error: %s", FhgfsOpsErr_toErrString(-rwRes) );
else
......
......@@ -93,8 +93,6 @@ void RWPagesWork_uninit(RWPagesWork* this)
FhgfsChunkPageVec_destroy(this->pageVec);
FhgfsInode_releaseHandle(fhgfsInode, this->handleType);
iput(this->inode);
}
void RWPagesWork_destruct(RWPagesWork* this)
......
......@@ -556,8 +556,6 @@ int _FhgfsOpsPages_writepages(struct address_space* mapping, struct writeback_co
#endif // LOG_DEBUG_MESSAGES
ihold(inode); // make sure the inode is not released
if (!page)
{ // writepages
#ifdef KERNEL_HAS_WRITE_CACHE_PAGES
......@@ -620,8 +618,6 @@ int _FhgfsOpsPages_writepages(struct address_space* mapping, struct writeback_co
FhgfsInode_releaseHandle(fhgfsInode, pageData.handleType);
outReferenceErr:
iput(inode);
#ifdef LOG_DEBUG_MESSAGES
{
App* app = FhgfsOps_getApp(inode->i_sb);
......
......@@ -1000,7 +1000,7 @@ void __FhgfsOpsCommKitVec_writefileStageHandlePages(CommKitVecHelper* commHelper
}
if (unlikely(remainingServerWriteRes < 0) )
Logger_logTopFormattedWithEntryID(inode, LogTopic_COMMKIT, Log_ERR, __func__,
Logger_logTopFormatted(commHelper->log, LogTopic_COMMKIT, Log_ERR, __func__,
"Write error detected (check server logs for details)!");
}
......@@ -1030,6 +1030,10 @@ static int64_t __FhgfsOpsCommKitVec_readfileCommunicate(CommKitVecHelper* commHe
static int64_t __FhgfsOpsCommKitVec_writefileCommunicate(CommKitVecHelper* commHelper,
FhgfsCommKitVec* comm)
{
FhgfsInode* inode = BEEGFS_INODE(comm->pageVec->inode);
FhgfsInode_incWriteBackCounter(inode);
comm->doHeader = false;
__FhgfsOpsCommKitVec_writefileStagePREPARE(commHelper, comm);
......@@ -1041,6 +1045,12 @@ static int64_t __FhgfsOpsCommKitVec_writefileCommunicate(CommKitVecHelper* commH
__FhgfsOpsCommKitVec_writefileStageSENDHEADER(commHelper, comm);
}
spin_lock(&inode->vfs_inode.i_lock);
FhgfsInode_setLastWriteBackOrIsizeWriteTime(inode);
FhgfsInode_decWriteBackCounter(inode);
FhgfsInode_unsetNoIsizeDecrease(inode);
spin_unlock(&inode->vfs_inode.i_lock);
return comm->nodeResult;
}
......
......@@ -77,7 +77,7 @@ void ModeCreateFile::printHelp()
std::cout << " --numtargets=<number> Number of stripe nodes (per file)." << std::endl;
std::cout << " Optional:" << std::endl;
std::cout << " --targets=<targetlist> Comma-separated list of targetIDs to use for the new" << std::endl;
std::cout << " file. (The list by be longer than the given" << std::endl;
std::cout << " file. (The list may be longer than the given" << std::endl;
std::cout << " numtargets value.)" << std::endl;
std::cout << " --access=<mode> The octal access permissions value for user, group" << std::endl;
std::cout << " and others. (Default: 0644)" << std::endl;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment