… | |
… | |
1279 | eio_dirent *oth = dents + dentoffs; |
1279 | eio_dirent *oth = dents + dentoffs; |
1280 | eio_dirent *dir = dents; |
1280 | eio_dirent *dir = dents; |
1281 | |
1281 | |
1282 | /* now partition dirs to the front, and non-dirs to the back */ |
1282 | /* now partition dirs to the front, and non-dirs to the back */ |
1283 | /* by walking from both sides and swapping if necessary */ |
1283 | /* by walking from both sides and swapping if necessary */ |
1284 | /* also clear score, so it doesn't influence sorting */ |
|
|
1285 | while (oth > dir) |
1284 | while (oth > dir) |
1286 | { |
1285 | { |
1287 | if (dir->type == EIO_DT_DIR) |
1286 | if (dir->type == EIO_DT_DIR) |
1288 | ++dir; |
1287 | ++dir; |
1289 | else if ((--oth)->type == EIO_DT_DIR) |
1288 | else if ((--oth)->type == EIO_DT_DIR) |
… | |
… | |
1292 | |
1291 | |
1293 | ++dir; |
1292 | ++dir; |
1294 | } |
1293 | } |
1295 | } |
1294 | } |
1296 | |
1295 | |
1297 | /* now sort the dirs only */ |
1296 | /* now sort the dirs only (dirs all have the same score) */ |
1298 | eio_dent_sort (dents, dir - dents, 0, inode_bits); |
1297 | eio_dent_sort (dents, dir - dents, 0, inode_bits); |
1299 | } |
1298 | } |
1300 | |
1299 | |
1301 | break; |
1300 | break; |
1302 | } |
1301 | } |