* [PATCH] ufs: make solaris fsck happy
@ 2010-02-25 18:47 Evgeniy Dushistov
2010-03-02 0:37 ` Andrew Morton
0 siblings, 1 reply; 2+ messages in thread
From: Evgeniy Dushistov @ 2010-02-25 18:47 UTC (permalink / raw)
To: Andrew Morton, linux-kernel; +Cc: Alex Viskovatoff
Alex Viskovatoff let me know that after copying data to solaris's ufs from
linux, solaris's fsck sees some errors in cylinder summary information.
This is because of solaris expects find some data on another places,
then curernt implementation save it.
This patch fixes this issue. It is tested by me, and also Alex
reported that it works for him.
Signed-off-by: Evgeniy Dushistov <dushistov@mail.ru>
Cc: Alex Viskovatoff <viskovatoff@imap.cc>
---
fs/ufs/ufs_fs.h | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/fs/ufs/ufs_fs.h b/fs/ufs/ufs_fs.h
index 54bde18..f221c5e 100644
--- a/fs/ufs/ufs_fs.h
+++ b/fs/ufs/ufs_fs.h
@@ -227,11 +227,16 @@ typedef __u16 __bitwise __fs16;
*/
#define ufs_cbtocylno(bno) \
((bno) * uspi->s_nspf / uspi->s_spc)
-#define ufs_cbtorpos(bno) \
+#define ufs_cbtorpos(bno) \
+ ((UFS_SB(sb)->s_flags & UFS_CG_SUN) ? \
+ (((((bno) * uspi->s_nspf % uspi->s_spc) % \
+ uspi->s_nsect) * \
+ uspi->s_nrpos) / uspi->s_nsect) \
+ : \
((((bno) * uspi->s_nspf % uspi->s_spc / uspi->s_nsect \
* uspi->s_trackskew + (bno) * uspi->s_nspf % uspi->s_spc \
% uspi->s_nsect * uspi->s_interleave) % uspi->s_nsect \
- * uspi->s_nrpos) / uspi->s_npsect)
+ * uspi->s_nrpos) / uspi->s_npsect))
/*
* The following macros optimize certain frequently calculated
--
1.6.5.6
--
/Evgeniy
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] ufs: make solaris fsck happy
2010-02-25 18:47 [PATCH] ufs: make solaris fsck happy Evgeniy Dushistov
@ 2010-03-02 0:37 ` Andrew Morton
0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2010-03-02 0:37 UTC (permalink / raw)
To: Evgeniy Dushistov; +Cc: linux-kernel, Alex Viskovatoff
On Thu, 25 Feb 2010 21:47:43 +0300
Evgeniy Dushistov <dushistov@mail.ru> wrote:
> --- a/fs/ufs/ufs_fs.h
> +++ b/fs/ufs/ufs_fs.h
> @@ -227,11 +227,16 @@ typedef __u16 __bitwise __fs16;
> */
> #define ufs_cbtocylno(bno) \
> ((bno) * uspi->s_nspf / uspi->s_spc)
> -#define ufs_cbtorpos(bno) \
> +#define ufs_cbtorpos(bno) \
> + ((UFS_SB(sb)->s_flags & UFS_CG_SUN) ? \
> + (((((bno) * uspi->s_nspf % uspi->s_spc) % \
> + uspi->s_nsect) * \
> + uspi->s_nrpos) / uspi->s_nsect) \
> + : \
> ((((bno) * uspi->s_nspf % uspi->s_spc / uspi->s_nsect \
> * uspi->s_trackskew + (bno) * uspi->s_nspf % uspi->s_spc \
> % uspi->s_nsect * uspi->s_interleave) % uspi->s_nsect \
> - * uspi->s_nrpos) / uspi->s_npsect)
> + * uspi->s_nrpos) / uspi->s_npsect))
yikes, that macro should be killed with a stick before it becomes
self-aware and starts breeding.
Or converted into a C function which humans have a chance of
understanding and maintaining.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-03-02 0:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-25 18:47 [PATCH] ufs: make solaris fsck happy Evgeniy Dushistov
2010-03-02 0:37 ` Andrew Morton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox