Changes in / [eb277fa7:8f29507f] in mainline
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/mips32/include/cp0.h
reb277fa7 r8f29507f 70 70 { \ 71 71 uint32_t retval; \ 72 asm ("mfc0 %0, $" #reg : "=r"(retval)); \72 asm volatile ("mfc0 %0, $" #reg : "=r"(retval)); \ 73 73 return retval; \ 74 74 } … … 76 76 #define GEN_WRITE_CP0(nm,reg) static inline void cp0_ ##nm##_write(uint32_t val) \ 77 77 { \ 78 asm ("mtc0 %0, $" #reg : : "r"(val) ); \78 asm volatile ("mtc0 %0, $" #reg : : "r"(val) ); \ 79 79 } 80 80 -
uspace/app/bdsh/cmds/modules/cp/cp.c
reb277fa7 r8f29507f 108 108 for (;;) { 109 109 ssize_t res; 110 size_t written = 0; 110 111 111 112 bytes = read(fd1, buff, blen); … … 120 121 * returned less data than requested. 121 122 */ 122 bytes = write(fd2, buff , res);123 bytes = write(fd2, buff + written, res); 123 124 if (bytes < 0) 124 125 goto err; 126 written += bytes; 125 127 res -= bytes; 126 128 } while (res > 0); -
uspace/app/bdsh/cmds/modules/rm/rm.c
reb277fa7 r8f29507f 101 101 } 102 102 103 static unsigned int rm_recursive_not_empty_dirs(const char *path) 104 { 105 DIR *dirp; 106 struct dirent *dp; 107 char buff[PATH_MAX]; 108 unsigned int scope; 109 unsigned int ret = 0; 110 111 dirp = opendir(path); 112 if (!dirp) { 113 /* May have been deleted between scoping it and opening it */ 114 cli_error(CL_EFAIL, "Could not open %s", path); 115 return ret; 116 } 117 118 memset(buff, 0, sizeof(buff)); 119 while ((dp = readdir(dirp))) { 120 snprintf(buff, PATH_MAX - 1, "%s/%s", path, dp->d_name); 121 scope = rm_scope(buff); 122 switch (scope) { 123 case RM_BOGUS: 124 break; 125 case RM_FILE: 126 ret += rm_single(buff); 127 break; 128 case RM_DIR: 129 ret += rm_recursive(buff); 130 break; 131 } 132 } 133 134 return ret; 135 } 136 103 137 static unsigned int rm_recursive(const char *path) 104 138 { 105 139 int rc; 140 unsigned int ret = 0; 106 141 107 142 /* First see if it will just go away */ … … 111 146 112 147 /* Its not empty, recursively scan it */ 113 cli_error(CL_ENOTSUP, 114 "Can not remove %s, directory not empty", path); 115 return 1; 148 ret = rm_recursive_not_empty_dirs(path); 149 150 /* Delete directory */ 151 rc = rmdir(path); 152 if (rc == 0) 153 return ret; 154 155 cli_error(CL_ENOTSUP, "Can not remove %s", path); 156 157 return ret + 1; 116 158 } 117 159 -
uspace/srv/vfs/vfs_ops.c
reb277fa7 r8f29507f 1234 1234 if (!parentc) { 1235 1235 fibril_rwlock_write_unlock(&namespace_rwlock); 1236 vfs_node_put(old_node); 1236 1237 async_answer_0(rid, rc); 1237 1238 free(old); … … 1251 1252 if (rc != EOK) { 1252 1253 fibril_rwlock_write_unlock(&namespace_rwlock); 1254 vfs_node_put(old_node); 1253 1255 async_answer_0(rid, rc); 1254 1256 free(old); … … 1261 1263 (old_node->devmap_handle != new_par_lr.triplet.devmap_handle)) { 1262 1264 fibril_rwlock_write_unlock(&namespace_rwlock); 1265 vfs_node_put(old_node); 1263 1266 async_answer_0(rid, EXDEV); /* different file systems */ 1264 1267 free(old); … … 1279 1282 if (!new_node) { 1280 1283 fibril_rwlock_write_unlock(&namespace_rwlock); 1284 vfs_node_put(old_node); 1281 1285 async_answer_0(rid, ENOMEM); 1282 1286 free(old); … … 1290 1294 default: 1291 1295 fibril_rwlock_write_unlock(&namespace_rwlock); 1296 vfs_node_put(old_node); 1292 1297 async_answer_0(rid, ENOTEMPTY); 1293 1298 free(old); … … 1300 1305 if (rc != EOK) { 1301 1306 fibril_rwlock_write_unlock(&namespace_rwlock); 1307 vfs_node_put(old_node); 1302 1308 if (new_node) 1303 1309 vfs_node_put(new_node);
Note:
See TracChangeset
for help on using the changeset viewer.