void yaffs_set_obj_name(struct yaffs_obj *obj, const YCHAR * name)
{
-#ifdef CONFIG_YAFFS_SHORT_NAMES_IN_RAM
- memset(obj->short_name, 0,
- sizeof(YCHAR) * (YAFFS_SHORT_NAME_LENGTH + 1));
- if (name
- && yaffs_strnlen(name,
- YAFFS_SHORT_NAME_LENGTH + 1) <=
+#ifndef CONFIG_YAFFS_NO_SHORT_NAMES
+ memset(obj->short_name, 0, sizeof(obj->short_name));
+ if (name &&
+ yaffs_strnlen(name, YAFFS_SHORT_NAME_LENGTH + 1) <=
YAFFS_SHORT_NAME_LENGTH)
yaffs_strcpy(obj->short_name, name);
else
return YAFFS_FAIL;
}
+
+/* Note:
+ * If old_name is NULL then we take old_dir as the object to be renamed.
+ */
int yaffs_rename_obj(struct yaffs_obj *old_dir, const YCHAR * old_name,
struct yaffs_obj *new_dir, const YCHAR * new_name)
{
* While look-up is case insensitive, the name isn't.
* Therefore we might want to change x.txt to X.txt
*/
- if (old_dir == new_dir && yaffs_strcmp(old_name, new_name) == 0)
+ if (old_dir == new_dir &&
+ old_name && new_name &&
+ yaffs_strcmp(old_name, new_name) == 0)
force = 1;
#endif
/* ENAMETOOLONG */
return YAFFS_FAIL;
- obj = yaffs_find_by_name(old_dir, old_name);
+ if(old_name)
+ obj = yaffs_find_by_name(old_dir, old_name);
+ else{
+ obj = old_dir;
+ old_dir = obj->parent;
+ }
+
if (obj && obj->rename_allowed) {
if (obj->obj_id == YAFFS_OBJECTID_LOSTNFOUND) {
yaffs_strncpy(name, YAFFS_LOSTNFOUND_NAME, buffer_size - 1);
}
-#ifdef CONFIG_YAFFS_SHORT_NAMES_IN_RAM
+#ifndef CONFIG_YAFFS_NO_SHORT_NAMES
else if (obj->short_name[0]) {
yaffs_strcpy(name, obj->short_name);
}
if (dev->param.is_yaffs2) {
if (yaffs2_checkpt_restore(dev)) {
yaffs_check_obj_details_loaded(dev->root_dir);
- T(YAFFS_TRACE_ALWAYS,
+ T(YAFFS_TRACE_CHECKPOINT | YAFFS_TRACE_MOUNT,
(TSTR
("yaffs: restored from checkpoint"
TENDSTR)));