Chromium Code Reviews| Index: native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc |
| diff --git a/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc b/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc |
| index 2f7607d0ff8c06fe9b8d500800c9af5662868b19..8fe4df874f34bbd7ac66fd7935e04403580aeb06 100644 |
| --- a/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc |
| +++ b/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc |
| @@ -16,6 +16,7 @@ |
| #include "nacl_io/filesystem.h" |
| #include "nacl_io/getdents_helper.h" |
| +#include "nacl_io/html5fs/html5_fs.h" |
| #include "nacl_io/kernel_handle.h" |
| #include "nacl_io/osdirent.h" |
| #include "nacl_io/pepper_interface.h" |
| @@ -125,8 +126,13 @@ Error Html5FsNode::GetDents(size_t offs, |
| std::min(static_cast<size_t>(file_name_length), |
| MEMBER_SIZE(dirent, d_name) - 1); // -1 for NULL. |
| - // TODO(binji): Better handling of ino numbers. |
| - helper.AddDirent(1, file_name, file_name_length); |
| + // The INO is based on the running hash of fully qualified path, so |
| + // a childs INO must be the parent directories hash, plus '/', plus |
| + // the filename. |
| + ino_t child_ino = Html5Fs::HashPathSegment(stat_.st_ino, file_name, |
| + file_name_length); |
|
binji
2014/09/25 21:52:04
nit: file_name_length should align with stat_ abov
noelallen1
2014/09/25 22:39:55
Done.
|
| + |
| + helper.AddDirent(child_ino, file_name, file_name_length); |
| } |
| var_iface_->Release(file_name_var); |