LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [2.6.7-rc1-bk] NTFS: 2.1.12 release - Fix the second fix to the decompression engine and some cleanups.
@ 2004-05-26 21:16 Anton Altaparmakov
2004-05-26 21:17 ` [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 1/3 Anton Altaparmakov
0 siblings, 1 reply; 4+ messages in thread
From: Anton Altaparmakov @ 2004-05-26 21:16 UTC (permalink / raw)
To: Andrew Morton, Linus Torvalds; +Cc: linux-kernel, linux-ntfs-dev
Hi Andrew, Hi Linus, please do a
bk pull bk://linux-ntfs.bkbits.net/ntfs-2.6
This will update the following files:
Documentation/filesystems/ntfs.txt | 3
fs/ntfs/ChangeLog | 18 ++++
fs/ntfs/Makefile | 4 -
fs/ntfs/aops.c | 9 ++
fs/ntfs/compress.c | 20 +----
fs/ntfs/dir.c | 2
fs/ntfs/inode.c | 134 ++++++++++++++++++++++++-------------
fs/ntfs/inode.h | 9 ++
fs/ntfs/ntfs.h | 1
fs/ntfs/super.c | 4 -
10 files changed, 140 insertions(+), 64 deletions(-)
through these ChangeSets:
<aia21@cantab.net> (04/05/17 1.1717.9.1)
NTFS: Add a new address space operations struct, ntfs_mst_aops, for mst
protected attributes. This is because the default ntfs_aops do not
make sense with mst protected data and were they to write anything to
such an attribute they would cause data corruption so we provide
ntfs_mst_aops which does not have any write related operations set.
<aia21@cantab.net> (04/05/25 1.1731)
NTFS: Cleanup dirty ntfs inode handling (fs/ntfs/inode.[hc]) which also
includes an adapted ntfs_commit_inode() and an implementation of
ntfs_write_inode() which for now just cleans dirty inodes without
writing them (it does emit a warning that this is happening).
<aia21@cantab.net> (04/05/26 1.1733)
NTFS: 2.1.12 release - Fix the second fix to the decompression engine.
For the benefit of non-BK users and to make code review easier, I am
sending each ChangeSet in a separate email as a diff -u style patch.
Thanks!
Best regards,
Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/, http://www-stu.christs.cam.ac.uk/~aia21/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 1/3
2004-05-26 21:16 [2.6.7-rc1-bk] NTFS: 2.1.12 release - Fix the second fix to the decompression engine and some cleanups Anton Altaparmakov
@ 2004-05-26 21:17 ` Anton Altaparmakov
2004-05-26 21:19 ` [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 2/3 Anton Altaparmakov
0 siblings, 1 reply; 4+ messages in thread
From: Anton Altaparmakov @ 2004-05-26 21:17 UTC (permalink / raw)
To: Andrew Morton, Linus Torvalds; +Cc: linux-kernel, linux-ntfs-dev
This is patch 1 in the series. It contains the following ChangeSet:
<aia21@cantab.net> (04/05/17 1.1717.9.1)
NTFS: Add a new address space operations struct, ntfs_mst_aops, for mst
protected attributes. This is because the default ntfs_aops do not
make sense with mst protected data and were they to write anything to
such an attribute they would cause data corruption so we provide
ntfs_mst_aops which does not have any write related operations set.
Best regards,
Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/, http://www-stu.christs.cam.ac.uk/~aia21/
===================================================================
diff -Nru a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog
--- a/fs/ntfs/ChangeLog 2004-05-26 22:10:11 +01:00
+++ b/fs/ntfs/ChangeLog 2004-05-26 22:10:11 +01:00
@@ -25,6 +25,14 @@
sufficient for synchronisation here. We then just need to make sure
ntfs_readpage/writepage/truncate interoperate properly with us.
+2.1.12 - WIP.
+
+ - Add a new address space operations struct, ntfs_mst_aops, for mst
+ protected attributes. This is because the default ntfs_aops do not
+ make sense with mst protected data and were they to write anything to
+ such an attribute they would cause data corruption so we provide
+ ntfs_mst_aops which does not have any write related operations set.
+
2.1.11 - Driver internal cleanups.
- Only build logfile.o if building the driver with read-write support.
diff -Nru a/fs/ntfs/Makefile b/fs/ntfs/Makefile
--- a/fs/ntfs/Makefile 2004-05-26 22:10:11 +01:00
+++ b/fs/ntfs/Makefile 2004-05-26 22:10:11 +01:00
@@ -5,7 +5,7 @@
ntfs-objs := aops.o attrib.o compress.o debug.o dir.o file.o inode.o mft.o \
mst.o namei.o super.o sysctl.o unistr.o upcase.o
-EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.11\"
+EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.12-WIP\"
ifeq ($(CONFIG_NTFS_DEBUG),y)
EXTRA_CFLAGS += -DDEBUG
diff -Nru a/fs/ntfs/aops.c b/fs/ntfs/aops.c
--- a/fs/ntfs/aops.c 2004-05-26 22:10:11 +01:00
+++ b/fs/ntfs/aops.c 2004-05-26 22:10:11 +01:00
@@ -1788,3 +1788,12 @@
#endif
};
+/**
+ * ntfs_mst_aops - general address space operations for mst protecteed inodes
+ * and attributes
+ */
+struct address_space_operations ntfs_mst_aops = {
+ .readpage = ntfs_readpage, /* Fill page with data. */
+ .sync_page = block_sync_page, /* Currently, just unplugs the
+ disk request queue. */
+};
diff -Nru a/fs/ntfs/inode.c b/fs/ntfs/inode.c
--- a/fs/ntfs/inode.c 2004-05-26 22:10:11 +01:00
+++ b/fs/ntfs/inode.c 2004-05-26 22:10:11 +01:00
@@ -872,7 +872,7 @@
/* Setup the operations for this inode. */
vi->i_op = &ntfs_dir_inode_ops;
vi->i_fop = &ntfs_dir_ops;
- vi->i_mapping->a_ops = &ntfs_aops;
+ vi->i_mapping->a_ops = &ntfs_mst_aops;
} else {
/* It is a file. */
reinit_attr_search_ctx(ctx);
@@ -1249,7 +1249,10 @@
/* Setup the operations for this attribute inode. */
vi->i_op = NULL;
vi->i_fop = NULL;
- vi->i_mapping->a_ops = &ntfs_aops;
+ if (NInoMstProtected(ni))
+ vi->i_mapping->a_ops = &ntfs_mst_aops;
+ else
+ vi->i_mapping->a_ops = &ntfs_aops;
if (!NInoCompressed(ni))
vi->i_blocks = ni->allocated_size >> 9;
diff -Nru a/fs/ntfs/ntfs.h b/fs/ntfs/ntfs.h
--- a/fs/ntfs/ntfs.h 2004-05-26 22:10:11 +01:00
+++ b/fs/ntfs/ntfs.h 2004-05-26 22:10:11 +01:00
@@ -62,6 +62,7 @@
/* The various operations structs defined throughout the driver files. */
extern struct super_operations ntfs_sops;
extern struct address_space_operations ntfs_aops;
+extern struct address_space_operations ntfs_mst_aops;
extern struct address_space_operations ntfs_mft_aops;
extern struct file_operations ntfs_file_ops;
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 2/3
2004-05-26 21:17 ` [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 1/3 Anton Altaparmakov
@ 2004-05-26 21:19 ` Anton Altaparmakov
2004-05-26 21:21 ` [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 3/3 Anton Altaparmakov
0 siblings, 1 reply; 4+ messages in thread
From: Anton Altaparmakov @ 2004-05-26 21:19 UTC (permalink / raw)
To: Andrew Morton, Linus Torvalds; +Cc: linux-kernel, linux-ntfs-dev
This is patch 2 in the series. It contains the following ChangeSet:
<aia21@cantab.net> (04/05/25 1.1731)
NTFS: Cleanup dirty ntfs inode handling (fs/ntfs/inode.[hc]) which also
includes an adapted ntfs_commit_inode() and an implementation of
ntfs_write_inode() which for now just cleans dirty inodes without
writing them (it does emit a warning that this is happening).
Best regards,
Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/, http://www-stu.christs.cam.ac.uk/~aia21/
===================================================================
diff -Nru a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog
--- a/fs/ntfs/ChangeLog 2004-05-26 22:10:14 +01:00
+++ b/fs/ntfs/ChangeLog 2004-05-26 22:10:14 +01:00
@@ -32,6 +32,10 @@
make sense with mst protected data and were they to write anything to
such an attribute they would cause data corruption so we provide
ntfs_mst_aops which does not have any write related operations set.
+ - Cleanup dirty ntfs inode handling (fs/ntfs/inode.[hc]) which also
+ includes an adapted ntfs_commit_inode() and an implementation of
+ ntfs_write_inode() which for now just cleans dirty inodes without
+ writing them (it does emit a warning that this is happening).
2.1.11 - Driver internal cleanups.
diff -Nru a/fs/ntfs/dir.c b/fs/ntfs/dir.c
--- a/fs/ntfs/dir.c 2004-05-26 22:10:14 +01:00
+++ b/fs/ntfs/dir.c 2004-05-26 22:10:14 +01:00
@@ -1196,7 +1196,7 @@
ia_mapping = vdir->i_mapping;
bmp_vi = ndir->itype.index.bmp_ino;
if (unlikely(!bmp_vi)) {
- ntfs_debug("Inode %lu, regetting index bitmap.", vdir->i_ino);
+ ntfs_debug("Inode 0x%lx, regetting index bitmap.", vdir->i_ino);
bmp_vi = ntfs_attr_iget(vdir, AT_BITMAP, I30, 4);
if (unlikely(IS_ERR(bmp_vi))) {
ntfs_error(sb, "Failed to get bitmap attribute.");
diff -Nru a/fs/ntfs/inode.c b/fs/ntfs/inode.c
--- a/fs/ntfs/inode.c 2004-05-26 22:10:14 +01:00
+++ b/fs/ntfs/inode.c 2004-05-26 22:10:14 +01:00
@@ -1342,7 +1342,7 @@
ni->name_len = 0;
/*
- * This sets up our little cheat allowing us to reuse the async io
+ * This sets up our little cheat allowing us to reuse the async read io
* completion handler for directories.
*/
ni->itype.index.block_size = vol->mft_record_size;
@@ -1706,18 +1706,6 @@
}
/**
- * ntfs_commit_inode - write out a dirty inode
- * @ni: inode to write out
- *
- */
-int ntfs_commit_inode(ntfs_inode *ni)
-{
- ntfs_debug("Entering for inode 0x%lx.", ni->mft_no);
- NInoClearDirty(ni);
- return 0;
-}
-
-/**
* ntfs_put_inode - handler for when the inode reference count is decremented
* @vi: vfs inode
*
@@ -1745,34 +1733,6 @@
void __ntfs_clear_inode(ntfs_inode *ni)
{
- int err;
-
- ntfs_debug("Entering for inode 0x%lx.", ni->mft_no);
- if (NInoDirty(ni)) {
- err = ntfs_commit_inode(ni);
- if (err) {
- ntfs_error(ni->vol->sb, "Failed to commit dirty "
- "inode synchronously.");
- // FIXME: Do something!!!
- }
- }
- /* Synchronize with ntfs_commit_inode(). */
- down(&ni->mrec_lock);
- up(&ni->mrec_lock);
- if (NInoDirty(ni)) {
- ntfs_error(ni->vol->sb, "Failed to commit dirty inode "
- "asynchronously.");
- // FIXME: Do something!!!
- }
- /* No need to lock at this stage as no one else has a reference. */
- if (ni->nr_extents > 0) {
- int i;
-
- // FIXME: Handle dirty case for each extent inode!
- for (i = 0; i < ni->nr_extents; i++)
- ntfs_clear_extent_inode(ni->ext.extent_ntfs_inos[i]);
- kfree(ni->ext.extent_ntfs_inos);
- }
/* Free all alocated memory. */
down_write(&ni->run_list.lock);
if (ni->run_list.rl) {
@@ -1802,6 +1762,20 @@
void ntfs_clear_extent_inode(ntfs_inode *ni)
{
+ ntfs_debug("Entering for inode 0x%lx.", ni->mft_no);
+
+ BUG_ON(NInoAttr(ni));
+ BUG_ON(ni->nr_extents != -1);
+
+#ifdef NTFS_RW
+ if (NInoDirty(ni)) {
+ if (!is_bad_inode(VFS_I(ni->ext.base_ntfs_ino)))
+ ntfs_error(ni->vol->sb, "Clearing dirty extent inode! "
+ "Losing data! This is a BUG!!!");
+ // FIXME: Do something!!!
+ }
+#endif /* NTFS_RW */
+
__ntfs_clear_inode(ni);
/* Bye, bye... */
@@ -1822,6 +1796,30 @@
{
ntfs_inode *ni = NTFS_I(vi);
+#ifdef NTFS_RW
+ if (NInoDirty(ni)) {
+ BOOL was_bad = (is_bad_inode(vi));
+
+ /* Committing the inode also commits all extent inodes. */
+ ntfs_commit_inode(vi);
+
+ if (!was_bad && (is_bad_inode(vi) || NInoDirty(ni))) {
+ ntfs_error(vi->i_sb, "Failed to commit dirty inode "
+ "0x%lx. Losing data!", vi->i_ino);
+ // FIXME: Do something!!!
+ }
+ }
+#endif /* NTFS_RW */
+
+ /* No need to lock at this stage as no one else has a reference. */
+ if (ni->nr_extents > 0) {
+ int i;
+
+ for (i = 0; i < ni->nr_extents; i++)
+ ntfs_clear_extent_inode(ni->ext.extent_ntfs_inos[i]);
+ kfree(ni->ext.extent_ntfs_inos);
+ }
+
__ntfs_clear_inode(ni);
if (NInoAttr(ni)) {
@@ -1962,4 +1960,49 @@
return err;
}
-#endif
+void ntfs_write_inode(struct inode *vi, int sync)
+{
+ ntfs_inode *ni = NTFS_I(vi);
+
+ ntfs_debug("Entering for %sinode 0x%lx.", NInoAttr(ni) ? "attr " : "",
+ vi->i_ino);
+
+ /*
+ * Dirty attribute inodes are written via their real inodes so just
+ * clean them here.
+ */
+ if (NInoAttr(ni)) {
+ NInoClearDirty(ni);
+ return;
+ }
+
+ /* Write this base mft record. */
+ if (NInoDirty(ni)) {
+ ntfs_warning(vi->i_sb, "Cleaning dirty inode 0x%lx without "
+ "writing to disk as this is not yet "
+ "implemented.", vi->i_ino);
+ NInoClearDirty(ni);
+ }
+
+ /* Write all attached extent mft records. */
+ down(&ni->extent_lock);
+ if (ni->nr_extents > 0) {
+ int i;
+ ntfs_inode **extent_nis = ni->ext.extent_ntfs_inos;
+
+ for (i = 0; i < ni->nr_extents; i++) {
+ ntfs_inode *tni = extent_nis[i];
+
+ if (NInoDirty(tni)) {
+ ntfs_warning(vi->i_sb, "Cleaning dirty extent "
+ "inode 0x%lx without writing "
+ "to disk as this is not yet "
+ "implemented.", tni->mft_no);
+ NInoClearDirty(tni);
+ }
+ }
+ }
+ up(&ni->extent_lock);
+}
+
+#endif /* NTFS_RW */
diff -Nru a/fs/ntfs/inode.h b/fs/ntfs/inode.h
--- a/fs/ntfs/inode.h 2004-05-26 22:10:14 +01:00
+++ b/fs/ntfs/inode.h 2004-05-26 22:10:14 +01:00
@@ -281,6 +281,15 @@
extern int ntfs_setattr(struct dentry *dentry, struct iattr *attr);
+extern void ntfs_write_inode(struct inode *vi, int sync);
+
+static inline void ntfs_commit_inode(struct inode *vi)
+{
+ if (!is_bad_inode(vi))
+ ntfs_write_inode(vi, 1);
+ return;
+}
+
#endif /* NTFS_RW */
#endif /* _LINUX_NTFS_INODE_H */
diff -Nru a/fs/ntfs/super.c b/fs/ntfs/super.c
--- a/fs/ntfs/super.c 2004-05-26 22:10:14 +01:00
+++ b/fs/ntfs/super.c 2004-05-26 22:10:14 +01:00
@@ -763,7 +763,7 @@
/* The $MFTMirr, like the $MFT is multi sector transfer protected. */
NInoSetMstProtected(tmp_ni);
/*
- * Set up our little cheat allowing us to reuse the async io
+ * Set up our little cheat allowing us to reuse the async read io
* completion handler for directories.
*/
tmp_ni->itype.index.block_size = vol->mft_record_size;
^ permalink raw reply [flat|nested] 4+ messages in thread
* [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 3/3
2004-05-26 21:19 ` [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 2/3 Anton Altaparmakov
@ 2004-05-26 21:21 ` Anton Altaparmakov
0 siblings, 0 replies; 4+ messages in thread
From: Anton Altaparmakov @ 2004-05-26 21:21 UTC (permalink / raw)
To: Andrew Morton, Linus Torvalds; +Cc: linux-kernel, linux-ntfs-dev
This is patch 3 in the series. It contains the following ChangeSet:
<aia21@cantab.net> (04/05/26 1.1733)
NTFS: 2.1.12 release - Fix the second fix to the decompression engine.
Best regards,
Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/, http://www-stu.christs.cam.ac.uk/~aia21/
===================================================================
diff -Nru a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt
--- a/Documentation/filesystems/ntfs.txt 2004-05-26 22:10:16 +01:00
+++ b/Documentation/filesystems/ntfs.txt 2004-05-26 22:10:16 +01:00
@@ -273,6 +273,9 @@
Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.
+2.1.12:
+ - Fix the second fix to the decompression engine from the 2.1.9 release
+ and some further internals cleanups.
2.1.11:
- Driver internal cleanups.
2.1.10:
diff -Nru a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog
--- a/fs/ntfs/ChangeLog 2004-05-26 22:10:16 +01:00
+++ b/fs/ntfs/ChangeLog 2004-05-26 22:10:16 +01:00
@@ -25,7 +25,7 @@
sufficient for synchronisation here. We then just need to make sure
ntfs_readpage/writepage/truncate interoperate properly with us.
-2.1.12 - WIP.
+2.1.12 - Fix the second fix to the decompression engine and some cleanups.
- Add a new address space operations struct, ntfs_mst_aops, for mst
protected attributes. This is because the default ntfs_aops do not
@@ -36,6 +36,10 @@
includes an adapted ntfs_commit_inode() and an implementation of
ntfs_write_inode() which for now just cleans dirty inodes without
writing them (it does emit a warning that this is happening).
+ - Undo the second decompression engine fix (see 2.1.9 release ChangeLog
+ entry) as it was only fixing a theoretical bug but at the same time
+ it badly broke the handling of sparse and uncompressed compression
+ blocks.
2.1.11 - Driver internal cleanups.
diff -Nru a/fs/ntfs/Makefile b/fs/ntfs/Makefile
--- a/fs/ntfs/Makefile 2004-05-26 22:10:16 +01:00
+++ b/fs/ntfs/Makefile 2004-05-26 22:10:16 +01:00
@@ -5,7 +5,7 @@
ntfs-objs := aops.o attrib.o compress.o debug.o dir.o file.o inode.o mft.o \
mst.o namei.o super.o sysctl.o unistr.o upcase.o
-EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.12-WIP\"
+EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.12\"
ifeq ($(CONFIG_NTFS_DEBUG),y)
EXTRA_CFLAGS += -DDEBUG
diff -Nru a/fs/ntfs/compress.c b/fs/ntfs/compress.c
--- a/fs/ntfs/compress.c 2004-05-26 22:10:16 +01:00
+++ b/fs/ntfs/compress.c 2004-05-26 22:10:16 +01:00
@@ -507,7 +507,7 @@
*/
unsigned int nr_pages = (end_vcn - start_vcn) <<
vol->cluster_size_bits >> PAGE_CACHE_SHIFT;
- unsigned int xpage, max_page, max_ofs, cur_page, cur_ofs, i;
+ unsigned int xpage, max_page, cur_page, cur_ofs, i;
unsigned int cb_clusters, cb_max_ofs;
int block, max_block, cb_max_page, bhs_size, nr_bhs, err = 0;
struct page **pages;
@@ -550,11 +550,8 @@
*/
max_page = ((VFS_I(ni)->i_size + PAGE_CACHE_SIZE - 1) >>
PAGE_CACHE_SHIFT) - offset;
- max_ofs = (VFS_I(ni)->i_size + PAGE_CACHE_SIZE - 1) & ~PAGE_CACHE_MASK;
- if (nr_pages < max_page) {
+ if (nr_pages < max_page)
max_page = nr_pages;
- max_ofs = 0;
- }
for (i = 0; i < max_page; i++, offset++) {
if (i != xpage)
pages[i] = grab_cache_page_nowait(mapping, offset);
@@ -722,14 +719,8 @@
cb_max_page >>= PAGE_CACHE_SHIFT;
/* Catch end of file inside a compression block. */
- if (cb_max_page >= max_page) {
- if (cb_max_page > max_page) {
- cb_max_page = max_page;
- cb_max_ofs = max_ofs;
- } else if (cb_max_ofs > max_ofs) {
- cb_max_ofs = max_ofs;
- }
- }
+ if (cb_max_page > max_page)
+ cb_max_page = max_page;
if (vcn == start_vcn - cb_clusters) {
/* Sparse cb, zero out page range overlapping the cb. */
@@ -897,7 +888,8 @@
if (page) {
ntfs_error(vol->sb, "Still have pages left! "
"Terminating them with extreme "
- "prejudice.");
+ "prejudice. Inode 0x%lx, page index "
+ "0x%lx.", ni->mft_no, page->index);
if (cur_page == xpage && !xpage_done)
SetPageError(page);
flush_dcache_page(page);
diff -Nru a/fs/ntfs/super.c b/fs/ntfs/super.c
--- a/fs/ntfs/super.c 2004-05-26 22:10:16 +01:00
+++ b/fs/ntfs/super.c 2004-05-26 22:10:16 +01:00
@@ -1142,7 +1142,7 @@
#ifdef NTFS_RW
/* Make sure that no unsupported volume flags are set. */
if (vol->vol_flags & VOLUME_MUST_MOUNT_RO_MASK) {
- static const char *es1 = "Volume has unsupported flags set ";
+ static const char *es1 = "Volume has unsupported flags set";
static const char *es2 = ". Run chkdsk and mount in Windows.";
/* If a read-write mount, convert it to a read-only mount. */
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-05-26 21:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-26 21:16 [2.6.7-rc1-bk] NTFS: 2.1.12 release - Fix the second fix to the decompression engine and some cleanups Anton Altaparmakov
2004-05-26 21:17 ` [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 1/3 Anton Altaparmakov
2004-05-26 21:19 ` [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 2/3 Anton Altaparmakov
2004-05-26 21:21 ` [2.6.7-rc1-bk] NTFS: 2.1.12 release - patch 3/3 Anton Altaparmakov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).