FAQ SearchLogin
Tuxera Home
View unanswered posts | View active topics It is currently Sun Nov 29, 2020 00:30



Post new topic Reply to topic  [ 6 posts ] 
Can't modify existing files 
Author Message

Joined: Fri Apr 02, 2010 10:07
Posts: 1
Post Can't modify existing files
Hi,

I'm using ntfs-3g on opensolaris. I can mount the device and I can create new files on the ntfs. Changing an existing file doesn't work though. Here's an example:

Code:
joost@acrx$ echo "hi" > /d/file1
joost@acrx$ echo "bye" >> /d/file1
-ksh: /d/file1: cannot create [File exists]


I've tried various versions and various mount options but nothing helps. Any hints are much appreciated!

Thanks, Joost

Code:
Version 2010.3.6 external FUSE 27
Mounted /devices/pci@0,0/pci1025,11a@1f,2/disk@0,0:s (Read-Write, label "D", NTFS 3.1)
Cmdline options: uid=102256,gid=102256,noatime,show_sys_files,debug
Mount options: silent,allow_other,nonempty,noatime,fsname=/devices/pci@0,0/pci1025,11a@1f,2/disk@0,0:s,default_permissions
Global ownership and permissions enforced, configuration type 1
unique: 1, opcode: INIT (26), nodeid: 1, insize: 56
INIT: 7.8
flags=0x00000000
max_readahead=0x00000000
   INIT: 7.8
   flags=0x00000000
   max_readahead=0x00000000
   max_write=0x00020000
   unique: 1, error: 0 (Error 0), outsize: 40


...
Code:
LOOKUP /file1
   unique: 289, error: -2 (No such file or directory), outsize: 16
unique: 290, opcode: GETATTR (3), nodeid: 1, insize: 40
   unique: 290, error: 0 (Error 0), outsize: 112
unique: 291, opcode: CREATE (35), nodeid: 1, insize: 55
   NODEID: 29
   unique: 291, error: 0 (Error 0), outsize: 152
  CREATE[0] flags: 0x2301 /file1
unique: 292, opcode: GETATTR (3), nodeid: 29, insize: 40
   unique: 292, error: 0 (Error 0), outsize: 112
unique: 293, opcode: GETATTR (3), nodeid: 29, insize: 40
   unique: 293, error: 0 (Error 0), outsize: 112
unique: 294, opcode: RELEASE (18), nodeid: 29, insize: 64
RELEASE[0] flags: 0x2301
   unique: 294, error: 0 (Error 0), outsize: 16
unique: 295, opcode: GETATTR (3), nodeid: 29, insize: 40
   unique: 295, error: 0 (Error 0), outsize: 112
unique: 296, opcode: GETATTR (3), nodeid: 29, insize: 40
   unique: 296, error: 0 (Error 0), outsize: 112
unique: 297, opcode: OPEN (14), nodeid: 29, insize: 48
   unique: 297, error: 0 (Error 0), outsize: 32
OPEN[0] flags: 0x1 /file1
unique: 298, opcode: WRITE (16), nodeid: 29, insize: 67
WRITE[0] 3 bytes to 0
   WRITE[0] 3 bytes
   unique: 298, error: 0 (Error 0), outsize: 24
unique: 299, opcode: RELEASE (18), nodeid: 29, insize: 64
RELEASE[0] flags: 0x1
   unique: 299, error: 0 (Error 0), outsize: 16
unique: 300, opcode: ACCESS (34), nodeid: 1, insize: 48
ACCESS / 01
   unique: 300, error: -89 (Operation not applicable), outsize: 16
unique: 301, opcode: LOOKUP (1), nodeid: 1, insize: 46
LOOKUP /file1
   NODEID: 29
   unique: 301, error: 0 (Error 0), outsize: 136
unique: 302, opcode: GETATTR (3), nodeid: 1, insize: 40
   unique: 302, error: 0 (Error 0), outsize: 112
unique: 303, opcode: CREATE (35), nodeid: 1, insize: 55
Index already have such entry: File exists
Failed to add entry to the index: File exists
   unique: 303, error: -17 (File exists), outsize: 16
Unmounting /devices/pci@0,0/pci1025,11a@1f,2/disk@0,0:s (D)


Fri Apr 02, 2010 12:07
Profile
NTFS-3G Lead Developer

Joined: Tue Sep 04, 2007 17:22
Posts: 1286
Post Re: Can't modify existing files
Hi,

Code:
unique: 301, opcode: LOOKUP (1), nodeid: 1, insize: 46
LOOKUP /file1
   NODEID: 29
   unique: 301, error: 0 (Error 0), outsize: 136
unique: 302, opcode: GETATTR (3), nodeid: 1, insize: 40
   unique: 302, error: 0 (Error 0), outsize: 112
unique: 303, opcode: CREATE (35), nodeid: 1, insize: 55
Index already have such entry: File exists
Failed to add entry to the index: File exists
   unique: 303, error: -17 (File exists), outsize: 16

From the ntfs-3g perspective, this sequence is correct : the caller checks for existing file, and gets zero (file available), and the following file creation is rightfully rejected.

This looks like an error in fuse. It has been reported that fuse has to be recompiled on OpenSolaris. Did you do so ?

Regards

Jean-Pierre


Fri Apr 02, 2010 16:06
Profile

Joined: Thu Nov 03, 2011 15:30
Posts: 1
Post Re: Can't modify existing files
I have just installed ntfs-3g on openindiana build and get the same error.

I can read, create and delete files, but cannot update them.

i followed these instruction to install fuse:

http://hub.opensolaris.org/bin/view/Pro ... stallation

and also downloaded the latest ntfs-3g package

i got the following warning when compiling the ntfs-3g source

****************************************************************************
* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING *
* The FUSE user space binaries were NOT installed with root directory *
* executable prefix. This means that automounting NTFS volumes during boot *
* could fail. This can be fixed the below way by reinstalling FUSE using *
* the right 'configure' option during FUSE compilation: *
* ./configure --exec-prefix=/ *
* make && sudo make install *
* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING *
****************************************************************************

I also found this entry on Oracle's site
blogs.oracle.com/rslee/entry/mount_ntfs_partion_on_solaris

which mentioned the same issue

I thought i would try a newer version of fuse and attempted to compile it and got the following errors:
fuse.c: In function `convert_statfs_old':
fuse.c:1022: error: structure has no member named `f_bavail'
fuse.c:1025: error: structure has no member named `f_namelen'
fuse.c: In function `fuse_fs_create':
fuse.c:1428: warning: unsigned int format, mode_t arg (arg 5)
fuse.c:1428: warning: unsigned int format, mode_t arg (arg 6)
fuse.c: In function `fuse_fs_mknod':
fuse.c:1579: warning: unsigned int format, mode_t arg (arg 4)
fuse.c:1579: warning: unsigned int format, mode_t arg (arg 6)
fuse.c: In function `fuse_fs_mkdir':
fuse.c:1593: warning: unsigned int format, mode_t arg (arg 4)
fuse.c:1593: warning: unsigned int format, mode_t arg (arg 5)
make[1]: *** [fuse.lo] Error 1

could you please assist

regards


Thu Nov 03, 2011 18:06
Profile
NTFS-3G Lead Developer

Joined: Tue Sep 04, 2007 17:22
Posts: 1286
Post Re: Can't modify existing files
Hi,

Quote:
I'm using ntfs-3g on opensolaris. I can mount the device and I can create new files on the ntfs. Changing an existing file doesn't work though. Here's an example:

I have finally been able to replicate this problem on OpenIndiana.... not easy, as there is apparently no free source for standard include files (stdio.h, stat.h etc.).

First, the problem does not exist with the low level interface (use lowntfs-3g instead of ntfs-3g).

Then, with the high level (standard ntfs-3g), it only occurs when appending to a file, I did not get it for other update modes. For some reason, fuse issues a create_file request instead of an open request. Luckily the "append" flag is set, so ntfs-3g can detect the situation and do a normal open. I do not know whether this is a hack or expected behavior.

Please try the attached patch, and sorry for the delay.

Regards

Jean-Pierre


Attachments:
solaris.patch.gz [183 Bytes]
Downloaded 1007 times
Thu Dec 22, 2011 15:36
Profile
NTFS-3G Lead Developer

Joined: Tue Sep 04, 2007 17:22
Posts: 1286
Post Re: Can't modify existing files
Hi,

Running more tests on OpenIndiana, I find numerous bugs in fuse behavior :
- cannot recreate an existing file,
- cannot write (or ftruncate) to a file created for writing read-only,
- when unlinking is denied, unlink() returns 0,
- opened directories are not released,
- probably more...

Also file name completion is not done ("ls -l foo*"), though the file list is queried from ntfs-3g, with a proper answer.

I could work around the above bugs by hacking lowntfs-3g, but with ntfs-3g too many errors accumulate in a single call.

I am using the latest fuse release from the sfe directory.... It is obviously far from being acceptable.

Good luck to OpenIndiana users.

Regards

Jean-Pierre


Fri Dec 23, 2011 13:56
Profile
NTFS-3G Lead Developer

Joined: Tue Sep 04, 2007 17:22
Posts: 1286
Post Re: Can't modify existing files
Hi,

See http://b.andre.pagesperso-orange.fr/ope ... fs-3g.html for workarounds.

Regards

Jean-Pierre


Thu Jan 05, 2012 09:11
Profile
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Original forum style by Vjacheslav Trushkin.