History log of /haiku/src/add-ons/kernel/file_systems/ntfs/ntfs.h
Revision Date Author Comments
# 5070f597 09-Nov-2021 Augustin Cavalier <waddlesplash@gmail.com>

ntfs: New driver glue, write support.

Change-Id: I7f7b1e1a85b2f966209437aa99b536d00623bc03
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4696
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 3fbe39e1 29-Oct-2021 Augustin Cavalier <waddlesplash@gmail.com>

ntfs: New driver glue (read support only.)

* Add some things to config.h for C++ friendliness.

* Import some more GPL code from libntfs into lowntfs.c,
in order to avoid reimplementing it (or copying & pasting,
which would probably make all the glue code GPL.)

* Write an entirely new kernel_interface.cpp, modeled after exfat's
and other newer filesystem drivers. Highlights:
- significant use of C++ RAII objects
- entry_cache support
- file_cache support (thus also read_pages)
- readdir of multiple dirents at once

Most NTFS tickets open at present are related to write support,
and this does not yet have that. It should however be considered
a part of #17165.

Change-Id: I6d5aa53d4d06846b0de5e6ce1431219bf70a6f2c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4679
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 30461842 29-Oct-2021 Augustin Cavalier <waddlesplash@gmail.com>

ntfs: Delete the old glue driver.

It originated on BeOS, and still retains a number of relics of that.
It did not support the file cache, it was rather slow on large disks,
and it had incorrect unlink behavior (delete immediately rather than
on vnode close.) It also is C, not C++.

libntfs-3g has also undergone significant changes in the time since
this driver was written, and it also has a "low level" FUSE module
that we can reuse a lot more code from, so a new driver will be
able to shed a lot of code and use more from upstream directly.
That is coming in the next commits.

Change-Id: Id6f8f8f85076dda92b289ef5a2f1ca6cd484f3e5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4678
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# f8d3a9ee 08-Jul-2018 Jérôme Duval <jerome.duval@gmail.com>

ntfs: read() and write() now pass a kernel buffer to libntfs.

when a user buffer is provided, we now pass a 128KB kernel buffer
to libntfs. The old loop in case of partial buffer read/write
was useless as ntfs_attr_pread() and ntfs_attr_pwrite() were
provided the same buffer. The new loop fills/dumps the user buffer
from/to the kernel buffer.
when a kernel buffer is provided, it is passed to libntfs, the new
loop exits after one cycle.


# 1cbc486e 01-Feb-2014 Gerasim Troeglazov <3dEyes@gmail.com>

NTFS: Code cleanup


# 39f5f304 27-Oct-2012 threedeyes <3dEyes@gmail.com>

NTFS: Deep code refactoring and lot of fixes

* Fix: the size of dirent struct in the fake attributes was counted incorrectly
* Directory reading code was re-written from scratch. That fixes hopefully #7573, #4974, #4877, #9082
* Create, rename, unlink routines were completely reimplemented
* Added fully functional support of extended attributes. This fixes #6509


# 3a0a7215 22-Oct-2012 threedeyes <3dEyes@gmail.com>

Added support for fake attributes.

If necessary, you can disable support for extended attributes in the settings file.


# 4375e3f9 22-Mar-2011 Jérôme Duval <korli@users.berlios.de>

* changed ERRPRINT macros to ERROR and TRACE
* ntfs log handler wasn't included for Haiku, it should be used to set up a log handler.
* style fix


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41081 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b62dd5ab 22-Feb-2011 Jérôme Duval <korli@users.berlios.de>

cleanup, header inclusion should be revisited.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40617 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b195827 11-Apr-2010 François Revol <revol@free.fr>

First implementation of attribute support on NTFS. Currently lists and reads named streams as such, but the name mapping is not yet correct.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36178 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 30bc84e9 01-Jun-2009 Gerasim Troeglazov <3deyes@gmail.com>

Update NTFS-3g Library to stable 2009.4.4 version. Clean up code. Now write support enabled by default.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30944 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64f22f3d 06-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* fs_walk():
- Get the actual node type. This seemed to be the main problem with using
ntfs -- paths beyond the root directory could not be resolved.
- Fixed memory leak in case of error.
* Pass node types instead of mode_t's to publish_vnode().
* Automatic white space cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29964 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 245aecda 21-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

Got rid of vnode_id and mount_id, replaced with ino_t and dev_t.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21485 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 570ab00a 05-Mar-2007 Gerasim Troeglazov <3deyes@gmail.com>

Fixed bug in fs_readdir function. Removed read-only assembling mode. Added settings file for addon tweaking: hide_sys_files, read_only, no_atime.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20332 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a15f740 02-Mar-2007 Gerasim Troeglazov <3deyes@gmail.com>

Some code and style cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20309 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7106362e 02-Mar-2007 Gerasim Troeglazov <3deyes@gmail.com>

Fixed build for R5 and dano targets. Bug fixes for fs_rename and fs_walk functions. Added simple identify functions for haiku.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20302 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 80bca3d3 22-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Added NTFS file system add-on written by Troeglazov Gerasim (a.k.a. 3dEyes**).
It's based on ntfs-3g-0.20070102-BETA, and therefore under the GPL license.
Writing is currently disabled for safety reasons, and you'll have to mount
it manually, as the identify hooks are not yet implemented.
Thanks a lot for your work!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19897 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1cbc486e1f09904ee18ea7dc9079f1fdfbbf908b 01-Feb-2014 Gerasim Troeglazov <3dEyes@gmail.com>

NTFS: Code cleanup


# 39f5f3042c1014d277d972b1c909566789ce1985 27-Oct-2012 threedeyes <3dEyes@gmail.com>

NTFS: Deep code refactoring and lot of fixes

* Fix: the size of dirent struct in the fake attributes was counted incorrectly
* Directory reading code was re-written from scratch. That fixes hopefully #7573, #4974, #4877, #9082
* Create, rename, unlink routines were completely reimplemented
* Added fully functional support of extended attributes. This fixes #6509


# 3a0a7215a9b83a81ee80c83537fb68becff4a546 22-Oct-2012 threedeyes <3dEyes@gmail.com>

Added support for fake attributes.

If necessary, you can disable support for extended attributes in the settings file.


# 4375e3f99c6f9eeba5a4059adb9a753f930620fd 22-Mar-2011 Jérôme Duval <korli@users.berlios.de>

* changed ERRPRINT macros to ERROR and TRACE
* ntfs log handler wasn't included for Haiku, it should be used to set up a log handler.
* style fix


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41081 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b62dd5abd5a6980811849b4cbb2dd40ce31eaebd 22-Feb-2011 Jérôme Duval <korli@users.berlios.de>

cleanup, header inclusion should be revisited.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40617 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b1958275449119ccd7b509934ccd04fea22ed3d 11-Apr-2010 François Revol <revol@free.fr>

First implementation of attribute support on NTFS. Currently lists and reads named streams as such, but the name mapping is not yet correct.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36178 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 30bc84e97110496a267b765a5a9090fc06ed7557 01-Jun-2009 Gerasim Troeglazov <3deyes@gmail.com>

Update NTFS-3g Library to stable 2009.4.4 version. Clean up code. Now write support enabled by default.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30944 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64f22f3d0dc5b85afea59b7969e2cb51543cb771 06-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* fs_walk():
- Get the actual node type. This seemed to be the main problem with using
ntfs -- paths beyond the root directory could not be resolved.
- Fixed memory leak in case of error.
* Pass node types instead of mode_t's to publish_vnode().
* Automatic white space cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29964 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 245aecda8ac43fc2c0c0bac6a7e4016efa9b71e1 21-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

Got rid of vnode_id and mount_id, replaced with ino_t and dev_t.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21485 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 570ab00aa78ede7f1e8bb331848610346fbdbdd2 05-Mar-2007 Gerasim Troeglazov <3deyes@gmail.com>

Fixed bug in fs_readdir function. Removed read-only assembling mode. Added settings file for addon tweaking: hide_sys_files, read_only, no_atime.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20332 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a15f740b9fd6994316ee8c5c18600857acfbd79 02-Mar-2007 Gerasim Troeglazov <3deyes@gmail.com>

Some code and style cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20309 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7106362e9c7cba9664d8b9c7c6d3cfb47a6f508d 02-Mar-2007 Gerasim Troeglazov <3deyes@gmail.com>

Fixed build for R5 and dano targets. Bug fixes for fs_rename and fs_walk functions. Added simple identify functions for haiku.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20302 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 80bca3d3c8c08d3c9b31d7609a7805941529e9c3 22-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Added NTFS file system add-on written by Troeglazov Gerasim (a.k.a. 3dEyes**).
It's based on ntfs-3g-0.20070102-BETA, and therefore under the GPL license.
Writing is currently disabled for safety reasons, and you'll have to mount
it manually, as the identify hooks are not yet implemented.
Thanks a lot for your work!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19897 a95241bf-73f2-0310-859d-f6bbb57e9c96