diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-31 12:23:59 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-31 12:23:59 -0500 |
commit | d3712b9dfcf44ca145cf87e7f4096fa2d923471a (patch) | |
tree | d72aaaa845fb81c669093363a0a1cc6d9e96baf2 /include/linux | |
parent | c5d2bc11030568966f04a2af35bacf33d3e37af7 (diff) | |
parent | f2933e86ad93a8d1287079d59e67afd6f4166a9d (diff) |
Merge tag 'for-linus' of git://github.com/prasad-joshi/logfs_upstream
There are few important bug fixes for LogFS
* tag 'for-linus' of git://github.com/prasad-joshi/logfs_upstream:
Logfs: Allow NULL block_isbad() methods
logfs: Grow inode in delete path
logfs: Free areas before calling generic_shutdown_super()
logfs: remove useless BUG_ON
MAINTAINERS: Add Prasad Joshi in LogFS maintiners
logfs: Propagate page parameter to __logfs_write_inode
logfs: set superblock shutdown flag after generic sb shutdown
logfs: take write mutex lock during fsync and sync
logfs: Prevent memory corruption
logfs: update page reference count for pined pages
Fix up conflict in fs/logfs/dev_mtd.c due to semantic change in what
"mtd->block_isbad" means in commit f2933e86ad93: "Logfs: Allow NULL
block_isbad() methods" clashing with the abstraction changes in the
commits 7086c19d0742: "mtd: introduce mtd_block_isbad interface" and
d58b27ed58a3: "logfs: do not use 'mtd->block_isbad' directly".
This resolution takes the semantics from commit f2933e86ad93, and just
makes mtd_block_isbad() return zero (false) if the 'block_isbad'
function is NULL. But that also means that now "mtd_can_have_bb()"
always returns 0.
Now, "mtd_block_markbad()" will obviously return an error if the
low-level driver doesn't support bad blocks, so this is somewhat
non-symmetric, but it actually makes sense if a NULL "block_isbad"
function is considered to mean "I assume that all my blocks are always
good".
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/mtd/mtd.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index 1a81fde8f333..221295208fd0 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h | |||
@@ -441,7 +441,7 @@ static inline void mtd_resume(struct mtd_info *mtd) | |||
441 | static inline int mtd_block_isbad(struct mtd_info *mtd, loff_t ofs) | 441 | static inline int mtd_block_isbad(struct mtd_info *mtd, loff_t ofs) |
442 | { | 442 | { |
443 | if (!mtd->block_isbad) | 443 | if (!mtd->block_isbad) |
444 | return -EOPNOTSUPP; | 444 | return 0; |
445 | return mtd->block_isbad(mtd, ofs); | 445 | return mtd->block_isbad(mtd, ofs); |
446 | } | 446 | } |
447 | 447 | ||
@@ -489,7 +489,7 @@ static inline int mtd_has_oob(const struct mtd_info *mtd) | |||
489 | 489 | ||
490 | static inline int mtd_can_have_bb(const struct mtd_info *mtd) | 490 | static inline int mtd_can_have_bb(const struct mtd_info *mtd) |
491 | { | 491 | { |
492 | return !!mtd->block_isbad; | 492 | return 0; |
493 | } | 493 | } |
494 | 494 | ||
495 | /* Kernel-side ioctl definitions */ | 495 | /* Kernel-side ioctl definitions */ |