thanks for the patch, Alex, but yesterday i converted all of my
harddisks to reiserFS in an act of frustration. Sorry that i can't help
you test your patch.
Alexander Zarochentsev wrote:
> hello,
>
> On Friday 24 February 2006 08:35, Alec Burney wrote:
>
> [...]
>
>
> would you please try the attached patch.
>
>
>
> ------------------------------------------------------------------------
>
> fs/reiser4/plugin/file/file.c | 9 +++++----
> 1 files changed, 5 insertions(+), 4 deletions(-)
>
> Index: linux-2.6.16-rc3-mm1/fs/reiser4/plugin/file/file.c
> ===================================================================
> --- linux-2.6.16-rc3-mm1.orig/fs/reiser4/plugin/file/file.c
> +++ linux-2.6.16-rc3-mm1/fs/reiser4/plugin/file/file.c
> @@ -2454,6 +2454,7 @@ ssize_t write_unix_file(struct file *fil
>
> if (inode_get_flag(inode, REISER4_PART_CONV)) {
> /* we can not currently write to a file which is partially
> converted */
> + txn_restart(ctx);
> get_exclusive_access(uf_info);
> result = finish_conversion(inode);
> drop_exclusive_access(uf_info);
> @@ -2481,6 +2482,7 @@ ssize_t write_unix_file(struct file *fil
>
> 3) convert file to extents to not enter here on each write
> to mmaped file */
> + txn_restart(ctx);
> get_exclusive_access(uf_info);
> result = check_pages_unix_file(file, inode);
> drop_exclusive_access(uf_info);
> @@ -2535,14 +2537,13 @@ ssize_t write_unix_file(struct file *fil
> while (left > 0) {
> int excl = 0;
>
> - /* getting exclusive or not exclusive access requires no
> - transaction open */
> - txn_restart_current();
> -
> /* faultin user page */
> fault_in_pages_readable(buf,
> left > PAGE_CACHE_SIZE ?
> PAGE_CACHE_SIZE : left);
>
> + /* getting exclusive or not exclusive access requires no
> + transaction open */
> + txn_restart(ctx);
> if (inode->i_size == 0) {
> get_exclusive_access(uf_info);
> excl = 1;
--
cell: 808.332.5131