Messages in this thread | | | Date | Thu, 16 Aug 2012 16:15:05 +0300 | From | Boaz Harrosh <> | Subject | Re: [PATCH 2/8] exofs: remove lock/unlock super |
| |
On 08/16/2012 04:10 PM, Artem Bityutskiy wrote:
> On Thu, 2012-08-16 at 15:32 +0300, Boaz Harrosh wrote: >> On 08/16/2012 03:20 PM, Artem Bityutskiy wrote: >> >>> On Thu, 2012-08-16 at 12:00 +0200, Marco Stornelli wrote: >>>> From: Marco Stornelli <marco.stornelli@gmail.com> >>>> >>>> Remove lock and unlock super operation. >>>> >>>> Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com> >>> >>> Acked-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> >>> >> >> >> Are you sure? It used to be that exofs_sync_fs() could be called >> concurrently. >> >> What about two "bash -c sync" calls or a sync and an unmount >> in parallel. anything protecting that? >> >> If so then sure, but please let me test first. > > Umm, actually we will probably end up writing the same twice without the > lock. >
No we are not allowed to run exofs_sync_fs() concurrently because it uses a per-alllocated scratch buffer to do it's stuff so you can end up with data corruption on disk.
And we cannot use a spin-lock because we might sleep in ore_write()
There are some optimizations I can do here, but lets for now just do the sb->s_lock thing, and I might decide to completely revamp the all thing later.
Thanks Boaz
| |