forked from mirrors/linux
		
	block: remove CONFIG_LBDAF
Currently support for 64-bit sector_t and blkcnt_t is optional on 32-bit architectures. These types are required to support block device and/or file sizes larger than 2 TiB, and have generally defaulted to on for a long time. Enabling the option only increases the i386 tinyconfig size by 145 bytes, and many data structures already always use 64-bit values for their in-core and on-disk data structures anyway, so there should not be a large change in dynamic memory usage either. Dropping this option removes a somewhat weird non-default config that has cause various bugs or compiler warnings when actually used. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
		
							parent
							
								
									75199aa526
								
							
						
					
					
						commit
						72deb455b5
					
				
					 61 changed files with 52 additions and 250 deletions
				
			
		|  | @ -72,47 +72,44 @@ and elsewhere regarding submitting Linux kernel patches. | ||||||
| 13) Has been build- and runtime tested with and without ``CONFIG_SMP`` and | 13) Has been build- and runtime tested with and without ``CONFIG_SMP`` and | ||||||
|     ``CONFIG_PREEMPT.`` |     ``CONFIG_PREEMPT.`` | ||||||
| 
 | 
 | ||||||
| 14) If the patch affects IO/Disk, etc: has been tested with and without | 16) All codepaths have been exercised with all lockdep features enabled. | ||||||
|     ``CONFIG_LBDAF.`` |  | ||||||
| 
 | 
 | ||||||
| 15) All codepaths have been exercised with all lockdep features enabled. | 17) All new ``/proc`` entries are documented under ``Documentation/`` | ||||||
| 
 | 
 | ||||||
| 16) All new ``/proc`` entries are documented under ``Documentation/`` | 18) All new kernel boot parameters are documented in | ||||||
| 
 |  | ||||||
| 17) All new kernel boot parameters are documented in |  | ||||||
|     ``Documentation/admin-guide/kernel-parameters.rst``. |     ``Documentation/admin-guide/kernel-parameters.rst``. | ||||||
| 
 | 
 | ||||||
| 18) All new module parameters are documented with ``MODULE_PARM_DESC()`` | 19) All new module parameters are documented with ``MODULE_PARM_DESC()`` | ||||||
| 
 | 
 | ||||||
| 19) All new userspace interfaces are documented in ``Documentation/ABI/``. | 20) All new userspace interfaces are documented in ``Documentation/ABI/``. | ||||||
|     See ``Documentation/ABI/README`` for more information. |     See ``Documentation/ABI/README`` for more information. | ||||||
|     Patches that change userspace interfaces should be CCed to |     Patches that change userspace interfaces should be CCed to | ||||||
|     linux-api@vger.kernel.org. |     linux-api@vger.kernel.org. | ||||||
| 
 | 
 | ||||||
| 20) Check that it all passes ``make headers_check``. | 21) Check that it all passes ``make headers_check``. | ||||||
| 
 | 
 | ||||||
| 21) Has been checked with injection of at least slab and page-allocation | 22) Has been checked with injection of at least slab and page-allocation | ||||||
|     failures.  See ``Documentation/fault-injection/``. |     failures.  See ``Documentation/fault-injection/``. | ||||||
| 
 | 
 | ||||||
|     If the new code is substantial, addition of subsystem-specific fault |     If the new code is substantial, addition of subsystem-specific fault | ||||||
|     injection might be appropriate. |     injection might be appropriate. | ||||||
| 
 | 
 | ||||||
| 22) Newly-added code has been compiled with ``gcc -W`` (use | 23) Newly-added code has been compiled with ``gcc -W`` (use | ||||||
|     ``make EXTRA_CFLAGS=-W``).  This will generate lots of noise, but is good |     ``make EXTRA_CFLAGS=-W``).  This will generate lots of noise, but is good | ||||||
|     for finding bugs like "warning: comparison between signed and unsigned". |     for finding bugs like "warning: comparison between signed and unsigned". | ||||||
| 
 | 
 | ||||||
| 23) Tested after it has been merged into the -mm patchset to make sure | 24) Tested after it has been merged into the -mm patchset to make sure | ||||||
|     that it still works with all of the other queued patches and various |     that it still works with all of the other queued patches and various | ||||||
|     changes in the VM, VFS, and other subsystems. |     changes in the VM, VFS, and other subsystems. | ||||||
| 
 | 
 | ||||||
| 24) All memory barriers {e.g., ``barrier()``, ``rmb()``, ``wmb()``} need a | 25) All memory barriers {e.g., ``barrier()``, ``rmb()``, ``wmb()``} need a | ||||||
|     comment in the source code that explains the logic of what they are doing |     comment in the source code that explains the logic of what they are doing | ||||||
|     and why. |     and why. | ||||||
| 
 | 
 | ||||||
| 25) If any ioctl's are added by the patch, then also update | 26) If any ioctl's are added by the patch, then also update | ||||||
|     ``Documentation/ioctl/ioctl-number.txt``. |     ``Documentation/ioctl/ioctl-number.txt``. | ||||||
| 
 | 
 | ||||||
| 26) If your modified source code depends on or uses any of the kernel | 27) If your modified source code depends on or uses any of the kernel | ||||||
|     APIs or features that are related to the following ``Kconfig`` symbols, |     APIs or features that are related to the following ``Kconfig`` symbols, | ||||||
|     then test multiple builds with the related ``Kconfig`` symbols disabled |     then test multiple builds with the related ``Kconfig`` symbols disabled | ||||||
|     and/or ``=m`` (if that option is available) [not all of these at the |     and/or ``=m`` (if that option is available) [not all of these at the | ||||||
|  |  | ||||||
|  | @ -74,38 +74,34 @@ Linux カーネルパッチ投稿者向けチェックリスト | ||||||
| 13: CONFIG_SMP, CONFIG_PREEMPT を有効にした場合と無効にした場合の両方で | 13: CONFIG_SMP, CONFIG_PREEMPT を有効にした場合と無効にした場合の両方で | ||||||
|     ビルドした上、動作確認を行ってください。 |     ビルドした上、動作確認を行ってください。 | ||||||
| 
 | 
 | ||||||
| 14: もしパッチがディスクのI/O性能などに影響を与えるようであれば、 | 14: lockdepの機能を全て有効にした上で、全てのコードパスを評価してください。 | ||||||
|     'CONFIG_LBDAF'オプションを有効にした場合と無効にした場合の両方で |  | ||||||
|     テストを実施してみてください。 |  | ||||||
| 
 | 
 | ||||||
| 15: lockdepの機能を全て有効にした上で、全てのコードパスを評価してください。 | 15: /proc に新しいエントリを追加した場合には、Documentation/ 配下に | ||||||
| 
 |  | ||||||
| 16: /proc に新しいエントリを追加した場合には、Documentation/ 配下に |  | ||||||
|     必ずドキュメントを追加してください。 |     必ずドキュメントを追加してください。 | ||||||
| 
 | 
 | ||||||
| 17: 新しいブートパラメータを追加した場合には、 | 16: 新しいブートパラメータを追加した場合には、 | ||||||
|     必ずDocumentation/admin-guide/kernel-parameters.rst に説明を追加してください。 |     必ずDocumentation/admin-guide/kernel-parameters.rst に説明を追加してください。 | ||||||
| 
 | 
 | ||||||
| 18: 新しくmoduleにパラメータを追加した場合には、MODULE_PARM_DESC()を | 17: 新しくmoduleにパラメータを追加した場合には、MODULE_PARM_DESC()を | ||||||
|     利用して必ずその説明を記述してください。 |     利用して必ずその説明を記述してください。 | ||||||
| 
 | 
 | ||||||
| 19: 新しいuserspaceインタフェースを作成した場合には、Documentation/ABI/ に | 18: 新しいuserspaceインタフェースを作成した場合には、Documentation/ABI/ に | ||||||
|     Documentation/ABI/README を参考にして必ずドキュメントを追加してください。 |     Documentation/ABI/README を参考にして必ずドキュメントを追加してください。 | ||||||
| 
 | 
 | ||||||
| 20: 'make headers_check'を実行して全く問題がないことを確認してください。 | 19: 'make headers_check'を実行して全く問題がないことを確認してください。 | ||||||
| 
 | 
 | ||||||
| 21: 少なくともslabアロケーションとpageアロケーションに失敗した場合の | 20: 少なくともslabアロケーションとpageアロケーションに失敗した場合の | ||||||
|     挙動について、fault-injectionを利用して確認してください。 |     挙動について、fault-injectionを利用して確認してください。 | ||||||
|     Documentation/fault-injection/ を参照してください。 |     Documentation/fault-injection/ を参照してください。 | ||||||
| 
 | 
 | ||||||
|     追加したコードがかなりの量であったならば、サブシステム特有の |     追加したコードがかなりの量であったならば、サブシステム特有の | ||||||
|     fault-injectionを追加したほうが良いかもしれません。 |     fault-injectionを追加したほうが良いかもしれません。 | ||||||
| 
 | 
 | ||||||
| 22: 新たに追加したコードは、`gcc -W'でコンパイルしてください。 | 21: 新たに追加したコードは、`gcc -W'でコンパイルしてください。 | ||||||
|     このオプションは大量の不要なメッセージを出力しますが、 |     このオプションは大量の不要なメッセージを出力しますが、 | ||||||
|     "warning: comparison between signed and unsigned" のようなメッセージは、 |     "warning: comparison between signed and unsigned" のようなメッセージは、 | ||||||
|     バグを見つけるのに役に立ちます。 |     バグを見つけるのに役に立ちます。 | ||||||
| 
 | 
 | ||||||
| 23: 投稿したパッチが -mm パッチセットにマージされた後、全ての既存のパッチや | 22: 投稿したパッチが -mm パッチセットにマージされた後、全ての既存のパッチや | ||||||
|     VM, VFS およびその他のサブシステムに関する様々な変更と、現時点でも共存 |     VM, VFS およびその他のサブシステムに関する様々な変更と、現時点でも共存 | ||||||
|     できることを確認するテストを行ってください。 |     できることを確認するテストを行ってください。 | ||||||
|  |  | ||||||
|  | @ -15,7 +15,6 @@ CONFIG_PERF_EVENTS=y | ||||||
| # CONFIG_COMPAT_BRK is not set | # CONFIG_COMPAT_BRK is not set | ||||||
| CONFIG_SLAB=y | CONFIG_SLAB=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -17,7 +17,6 @@ CONFIG_PERF_EVENTS=y | ||||||
| CONFIG_SLAB=y | CONFIG_SLAB=y | ||||||
| CONFIG_KPROBES=y | CONFIG_KPROBES=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -18,7 +18,6 @@ CONFIG_PERF_EVENTS=y | ||||||
| CONFIG_ISA_ARCOMPACT=y | CONFIG_ISA_ARCOMPACT=y | ||||||
| CONFIG_KPROBES=y | CONFIG_KPROBES=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -20,7 +20,6 @@ CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_FORCE_LOAD=y | CONFIG_MODULE_FORCE_LOAD=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| CONFIG_MODULE_FORCE_UNLOAD=y | CONFIG_MODULE_FORCE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -18,7 +18,6 @@ CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_FORCE_LOAD=y | CONFIG_MODULE_FORCE_LOAD=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| CONFIG_MODULE_FORCE_UNLOAD=y | CONFIG_MODULE_FORCE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -18,7 +18,6 @@ CONFIG_PERF_EVENTS=y | ||||||
| CONFIG_ISA_ARCOMPACT=y | CONFIG_ISA_ARCOMPACT=y | ||||||
| CONFIG_KPROBES=y | CONFIG_KPROBES=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -17,7 +17,6 @@ CONFIG_PERF_EVENTS=y | ||||||
| # CONFIG_COMPAT_BRK is not set | # CONFIG_COMPAT_BRK is not set | ||||||
| CONFIG_KPROBES=y | CONFIG_KPROBES=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -12,7 +12,6 @@ CONFIG_PERF_EVENTS=y | ||||||
| # CONFIG_COMPAT_BRK is not set | # CONFIG_COMPAT_BRK is not set | ||||||
| CONFIG_KPROBES=y | CONFIG_KPROBES=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -23,7 +23,6 @@ CONFIG_SLAB_FREELIST_RANDOM=y | ||||||
| CONFIG_JUMP_LABEL=y | CONFIG_JUMP_LABEL=y | ||||||
| CONFIG_STRICT_KERNEL_RWX=y | CONFIG_STRICT_KERNEL_RWX=y | ||||||
| CONFIG_GCC_PLUGINS=y | CONFIG_GCC_PLUGINS=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_BLK_DEBUG_FS is not set | # CONFIG_BLK_DEBUG_FS is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
|  |  | ||||||
|  | @ -23,7 +23,6 @@ CONFIG_SLAB_FREELIST_RANDOM=y | ||||||
| CONFIG_JUMP_LABEL=y | CONFIG_JUMP_LABEL=y | ||||||
| CONFIG_STRICT_KERNEL_RWX=y | CONFIG_STRICT_KERNEL_RWX=y | ||||||
| CONFIG_GCC_PLUGINS=y | CONFIG_GCC_PLUGINS=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_BLK_DEBUG_FS is not set | # CONFIG_BLK_DEBUG_FS is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
|  |  | ||||||
|  | @ -9,7 +9,6 @@ CONFIG_EMBEDDED=y | ||||||
| CONFIG_SLAB=y | CONFIG_SLAB=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -6,7 +6,6 @@ CONFIG_RD_LZMA=y | ||||||
| CONFIG_EMBEDDED=y | CONFIG_EMBEDDED=y | ||||||
| CONFIG_SLOB=y | CONFIG_SLOB=y | ||||||
| CONFIG_JUMP_LABEL=y | CONFIG_JUMP_LABEL=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| CONFIG_PARTITION_ADVANCED=y | CONFIG_PARTITION_ADVANCED=y | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
| CONFIG_ARCH_CLPS711X=y | CONFIG_ARCH_CLPS711X=y | ||||||
|  |  | ||||||
|  | @ -11,7 +11,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||||||
| CONFIG_EMBEDDED=y | CONFIG_EMBEDDED=y | ||||||
| # CONFIG_VM_EVENT_COUNTERS is not set | # CONFIG_VM_EVENT_COUNTERS is not set | ||||||
| # CONFIG_SLUB_DEBUG is not set | # CONFIG_SLUB_DEBUG is not set | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -13,7 +13,6 @@ CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| CONFIG_MODULE_FORCE_UNLOAD=y | CONFIG_MODULE_FORCE_UNLOAD=y | ||||||
| CONFIG_MODVERSIONS=y | CONFIG_MODVERSIONS=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
| CONFIG_ARCH_PXA=y | CONFIG_ARCH_PXA=y | ||||||
|  |  | ||||||
|  | @ -4,7 +4,6 @@ CONFIG_HIGH_RES_TIMERS=y | ||||||
| CONFIG_LOG_BUF_SHIFT=14 | CONFIG_LOG_BUF_SHIFT=14 | ||||||
| CONFIG_BLK_DEV_INITRD=y | CONFIG_BLK_DEV_INITRD=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -12,7 +12,6 @@ CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| CONFIG_MODULE_FORCE_UNLOAD=y | CONFIG_MODULE_FORCE_UNLOAD=y | ||||||
| CONFIG_MODVERSIONS=y | CONFIG_MODVERSIONS=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
| CONFIG_ARCH_PXA=y | CONFIG_ARCH_PXA=y | ||||||
|  |  | ||||||
|  | @ -15,7 +15,6 @@ CONFIG_EMBEDDED=y | ||||||
| # CONFIG_VM_EVENT_COUNTERS is not set | # CONFIG_VM_EVENT_COUNTERS is not set | ||||||
| # CONFIG_SLUB_DEBUG is not set | # CONFIG_SLUB_DEBUG is not set | ||||||
| # CONFIG_COMPAT_BRK is not set | # CONFIG_COMPAT_BRK is not set | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| CONFIG_ARCH_MULTI_V4=y | CONFIG_ARCH_MULTI_V4=y | ||||||
|  |  | ||||||
|  | @ -5,7 +5,6 @@ CONFIG_BLK_DEV_INITRD=y | ||||||
| CONFIG_EMBEDDED=y | CONFIG_EMBEDDED=y | ||||||
| CONFIG_SLOB=y | CONFIG_SLOB=y | ||||||
| CONFIG_JUMP_LABEL=y | CONFIG_JUMP_LABEL=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| CONFIG_PARTITION_ADVANCED=y | CONFIG_PARTITION_ADVANCED=y | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
| CONFIG_ARCH_MULTI_V4T=y | CONFIG_ARCH_MULTI_V4T=y | ||||||
|  |  | ||||||
|  | @ -17,7 +17,6 @@ CONFIG_OPROFILE=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| CONFIG_MODULE_FORCE_UNLOAD=y | CONFIG_MODULE_FORCE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -13,7 +13,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||||||
| CONFIG_EMBEDDED=y | CONFIG_EMBEDDED=y | ||||||
| # CONFIG_VM_EVENT_COUNTERS is not set | # CONFIG_VM_EVENT_COUNTERS is not set | ||||||
| # CONFIG_SLUB_DEBUG is not set | # CONFIG_SLUB_DEBUG is not set | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -9,7 +9,6 @@ CONFIG_EXPERT=y | ||||||
| # CONFIG_VM_EVENT_COUNTERS is not set | # CONFIG_VM_EVENT_COUNTERS is not set | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| CONFIG_PARTITION_ADVANCED=y | CONFIG_PARTITION_ADVANCED=y | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -14,7 +14,6 @@ CONFIG_PROFILING=y | ||||||
| CONFIG_OPROFILE=y | CONFIG_OPROFILE=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -12,7 +12,6 @@ CONFIG_EMBEDDED=y | ||||||
| # CONFIG_VM_EVENT_COUNTERS is not set | # CONFIG_VM_EVENT_COUNTERS is not set | ||||||
| # CONFIG_SLUB_DEBUG is not set | # CONFIG_SLUB_DEBUG is not set | ||||||
| # CONFIG_COMPAT_BRK is not set | # CONFIG_COMPAT_BRK is not set | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
| # CONFIG_MMU is not set | # CONFIG_MMU is not set | ||||||
|  |  | ||||||
|  | @ -11,7 +11,6 @@ CONFIG_SYSCTL_SYSCALL=y | ||||||
| # CONFIG_AIO is not set | # CONFIG_AIO is not set | ||||||
| CONFIG_EMBEDDED=y | CONFIG_EMBEDDED=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -17,7 +17,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||||||
| CONFIG_EMBEDDED=y | CONFIG_EMBEDDED=y | ||||||
| # CONFIG_VM_EVENT_COUNTERS is not set | # CONFIG_VM_EVENT_COUNTERS is not set | ||||||
| # CONFIG_COMPAT_BRK is not set | # CONFIG_COMPAT_BRK is not set | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| CONFIG_BLK_CMDLINE_PARSER=y | CONFIG_BLK_CMDLINE_PARSER=y | ||||||
| # CONFIG_MMU is not set | # CONFIG_MMU is not set | ||||||
|  |  | ||||||
|  | @ -18,7 +18,6 @@ CONFIG_KEXEC=y | ||||||
| # CONFIG_SECCOMP is not set | # CONFIG_SECCOMP is not set | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| CONFIG_PARTITION_ADVANCED=y | CONFIG_PARTITION_ADVANCED=y | ||||||
| CONFIG_BSD_DISKLABEL=y | CONFIG_BSD_DISKLABEL=y | ||||||
|  |  | ||||||
|  | @ -17,7 +17,6 @@ CONFIG_TC=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| CONFIG_MODULE_SRCVERSION_ALL=y | CONFIG_MODULE_SRCVERSION_ALL=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| CONFIG_PARTITION_ADVANCED=y | CONFIG_PARTITION_ADVANCED=y | ||||||
| CONFIG_OSF_PARTITION=y | CONFIG_OSF_PARTITION=y | ||||||
| # CONFIG_EFI_PARTITION is not set | # CONFIG_EFI_PARTITION is not set | ||||||
|  |  | ||||||
|  | @ -16,7 +16,6 @@ CONFIG_TC=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| CONFIG_MODULE_SRCVERSION_ALL=y | CONFIG_MODULE_SRCVERSION_ALL=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| CONFIG_PARTITION_ADVANCED=y | CONFIG_PARTITION_ADVANCED=y | ||||||
| CONFIG_OSF_PARTITION=y | CONFIG_OSF_PARTITION=y | ||||||
| # CONFIG_EFI_PARTITION is not set | # CONFIG_EFI_PARTITION is not set | ||||||
|  |  | ||||||
|  | @ -19,7 +19,6 @@ CONFIG_MACH_LOONGSON32=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| CONFIG_MODVERSIONS=y | CONFIG_MODVERSIONS=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||||||
| CONFIG_NET=y | CONFIG_NET=y | ||||||
|  |  | ||||||
|  | @ -20,7 +20,6 @@ CONFIG_LOONGSON1_LS1C=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| CONFIG_MODVERSIONS=y | CONFIG_MODVERSIONS=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||||||
| CONFIG_NET=y | CONFIG_NET=y | ||||||
|  |  | ||||||
|  | @ -19,7 +19,6 @@ CONFIG_PCI=y | ||||||
| # CONFIG_PCI_QUIRKS is not set | # CONFIG_PCI_QUIRKS is not set | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| CONFIG_PARTITION_ADVANCED=y | CONFIG_PARTITION_ADVANCED=y | ||||||
| CONFIG_MAC_PARTITION=y | CONFIG_MAC_PARTITION=y | ||||||
|  |  | ||||||
|  | @ -17,7 +17,6 @@ CONFIG_TOSHIBA_RBTX4938_MPLEX_KEEP=y | ||||||
| CONFIG_PCI=y | CONFIG_PCI=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| CONFIG_NET=y | CONFIG_NET=y | ||||||
| CONFIG_PACKET=y | CONFIG_PACKET=y | ||||||
|  |  | ||||||
|  | @ -14,7 +14,6 @@ CONFIG_SLAB=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| CONFIG_MODULE_FORCE_UNLOAD=y | CONFIG_MODULE_FORCE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| CONFIG_PA7100LC=y | CONFIG_PA7100LC=y | ||||||
| CONFIG_SMP=y | CONFIG_SMP=y | ||||||
|  |  | ||||||
|  | @ -19,7 +19,6 @@ CONFIG_SLAB=y | ||||||
| CONFIG_PROFILING=y | CONFIG_PROFILING=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| CONFIG_CFQ_GROUP_IOSCHED=y | CONFIG_CFQ_GROUP_IOSCHED=y | ||||||
| CONFIG_CPU_SUBTYPE_SH7786=y | CONFIG_CPU_SUBTYPE_SH7786=y | ||||||
|  |  | ||||||
|  | @ -7,7 +7,6 @@ CONFIG_LOG_BUF_SHIFT=14 | ||||||
| CONFIG_BLK_DEV_INITRD=y | CONFIG_BLK_DEV_INITRD=y | ||||||
| # CONFIG_KALLSYMS is not set | # CONFIG_KALLSYMS is not set | ||||||
| CONFIG_SLAB=y | CONFIG_SLAB=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| CONFIG_CPU_SUBTYPE_SH7724=y | CONFIG_CPU_SUBTYPE_SH7724=y | ||||||
| CONFIG_MEMORY_SIZE=0x10000000 | CONFIG_MEMORY_SIZE=0x10000000 | ||||||
|  |  | ||||||
|  | @ -16,7 +16,6 @@ CONFIG_PERF_COUNTERS=y | ||||||
| CONFIG_SLAB=y | CONFIG_SLAB=y | ||||||
| CONFIG_MMAP_ALLOW_UNINITIALIZED=y | CONFIG_MMAP_ALLOW_UNINITIALIZED=y | ||||||
| CONFIG_PROFILING=y | CONFIG_PROFILING=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| CONFIG_PARTITION_ADVANCED=y | CONFIG_PARTITION_ADVANCED=y | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
|  |  | ||||||
|  | @ -3,7 +3,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||||||
| CONFIG_EMBEDDED=y | CONFIG_EMBEDDED=y | ||||||
| # CONFIG_VM_EVENT_COUNTERS is not set | # CONFIG_VM_EVENT_COUNTERS is not set | ||||||
| CONFIG_SLAB=y | CONFIG_SLAB=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| # CONFIG_IOSCHED_DEADLINE is not set | # CONFIG_IOSCHED_DEADLINE is not set | ||||||
| # CONFIG_IOSCHED_CFQ is not set | # CONFIG_IOSCHED_CFQ is not set | ||||||
|  |  | ||||||
|  | @ -11,7 +11,6 @@ CONFIG_PROFILING=y | ||||||
| CONFIG_GCOV_KERNEL=y | CONFIG_GCOV_KERNEL=y | ||||||
| CONFIG_MODULES=y | CONFIG_MODULES=y | ||||||
| CONFIG_MODULE_UNLOAD=y | CONFIG_MODULE_UNLOAD=y | ||||||
| # CONFIG_LBDAF is not set |  | ||||||
| # CONFIG_BLK_DEV_BSG is not set | # CONFIG_BLK_DEV_BSG is not set | ||||||
| CONFIG_CPU_SUBTYPE_SH7785=y | CONFIG_CPU_SUBTYPE_SH7785=y | ||||||
| CONFIG_MEMORY_START=0x40000000 | CONFIG_MEMORY_START=0x40000000 | ||||||
|  |  | ||||||
|  | @ -26,30 +26,6 @@ menuconfig BLOCK | ||||||
| 
 | 
 | ||||||
| if BLOCK | if BLOCK | ||||||
| 
 | 
 | ||||||
| config LBDAF |  | ||||||
| 	bool "Support for large (2TB+) block devices and files" |  | ||||||
| 	depends on !64BIT |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  Enable block devices or files of size 2TB and larger. |  | ||||||
| 
 |  | ||||||
| 	  This option is required to support the full capacity of large |  | ||||||
| 	  (2TB+) block devices, including RAID, disk, Network Block Device, |  | ||||||
| 	  Logical Volume Manager (LVM) and loopback. |  | ||||||
| 	 |  | ||||||
| 	  This option also enables support for single files larger than |  | ||||||
| 	  2TB. |  | ||||||
| 
 |  | ||||||
| 	  The ext4 filesystem requires that this feature be enabled in |  | ||||||
| 	  order to support filesystems that have the huge_file feature |  | ||||||
| 	  enabled.  Otherwise, it will refuse to mount in the read-write |  | ||||||
| 	  mode any filesystems that use the huge_file feature, which is |  | ||||||
| 	  enabled by default by mke2fs.ext4. |  | ||||||
| 
 |  | ||||||
| 	  The GFS2 filesystem also requires this feature. |  | ||||||
| 
 |  | ||||||
| 	  If unsure, say Y. |  | ||||||
| 
 |  | ||||||
| config BLK_SCSI_REQUEST | config BLK_SCSI_REQUEST | ||||||
| 	bool | 	bool | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1317,10 +1317,6 @@ struct bm_extent { | ||||||
| 
 | 
 | ||||||
| #define DRBD_MAX_SECTORS_FIXED_BM \ | #define DRBD_MAX_SECTORS_FIXED_BM \ | ||||||
| 	  ((MD_128MB_SECT - MD_32kB_SECT - MD_4kB_SECT) * (1LL<<(BM_EXT_SHIFT-9))) | 	  ((MD_128MB_SECT - MD_32kB_SECT - MD_4kB_SECT) * (1LL<<(BM_EXT_SHIFT-9))) | ||||||
| #if !defined(CONFIG_LBDAF) && BITS_PER_LONG == 32 |  | ||||||
| #define DRBD_MAX_SECTORS      DRBD_MAX_SECTORS_32 |  | ||||||
| #define DRBD_MAX_SECTORS_FLEX DRBD_MAX_SECTORS_32 |  | ||||||
| #else |  | ||||||
| #define DRBD_MAX_SECTORS      DRBD_MAX_SECTORS_FIXED_BM | #define DRBD_MAX_SECTORS      DRBD_MAX_SECTORS_FIXED_BM | ||||||
| /* 16 TB in units of sectors */ | /* 16 TB in units of sectors */ | ||||||
| #if BITS_PER_LONG == 32 | #if BITS_PER_LONG == 32 | ||||||
|  | @ -1333,7 +1329,6 @@ struct bm_extent { | ||||||
| #define DRBD_MAX_SECTORS_FLEX (1UL << 51) | #define DRBD_MAX_SECTORS_FLEX (1UL << 51) | ||||||
| /* corresponds to (1UL << 38) bits right now. */ | /* corresponds to (1UL << 38) bits right now. */ | ||||||
| #endif | #endif | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /* Estimate max bio size as 256 * PAGE_SIZE,
 | /* Estimate max bio size as 256 * PAGE_SIZE,
 | ||||||
|  * so for typical PAGE_SIZE of 4k, that is (1<<20) Byte. |  * so for typical PAGE_SIZE of 4k, that is (1<<20) Byte. | ||||||
|  |  | ||||||
|  | @ -102,7 +102,7 @@ static void ps3disk_scatter_gather(struct ps3_storage_device *dev, | ||||||
| 
 | 
 | ||||||
| 	rq_for_each_segment(bvec, req, iter) { | 	rq_for_each_segment(bvec, req, iter) { | ||||||
| 		unsigned long flags; | 		unsigned long flags; | ||||||
| 		dev_dbg(&dev->sbd.core, "%s:%u: bio %u: %u sectors from %lu\n", | 		dev_dbg(&dev->sbd.core, "%s:%u: bio %u: %u sectors from %llu\n", | ||||||
| 			__func__, __LINE__, i, bio_sectors(iter.bio), | 			__func__, __LINE__, i, bio_sectors(iter.bio), | ||||||
| 			iter.bio->bi_iter.bi_sector); | 			iter.bio->bi_iter.bi_sector); | ||||||
| 
 | 
 | ||||||
|  | @ -496,7 +496,7 @@ static int ps3disk_probe(struct ps3_system_bus_device *_dev) | ||||||
| 		     dev->regions[dev->region_idx].size*priv->blocking_factor); | 		     dev->regions[dev->region_idx].size*priv->blocking_factor); | ||||||
| 
 | 
 | ||||||
| 	dev_info(&dev->sbd.core, | 	dev_info(&dev->sbd.core, | ||||||
| 		 "%s is a %s (%llu MiB total, %lu MiB for OtherOS)\n", | 		 "%s is a %s (%llu MiB total, %llu MiB for OtherOS)\n", | ||||||
| 		 gendisk->disk_name, priv->model, priv->raw_capacity >> 11, | 		 gendisk->disk_name, priv->model, priv->raw_capacity >> 11, | ||||||
| 		 get_capacity(gendisk) >> 11); | 		 get_capacity(gendisk) >> 11); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -135,9 +135,8 @@ struct dm_dev *dm_snap_cow(struct dm_snapshot *snap); | ||||||
| /*
 | /*
 | ||||||
|  * Funtions to manipulate consecutive chunks |  * Funtions to manipulate consecutive chunks | ||||||
|  */ |  */ | ||||||
| #  if defined(CONFIG_LBDAF) || (BITS_PER_LONG == 64) | #define DM_CHUNK_CONSECUTIVE_BITS 8 | ||||||
| #    define DM_CHUNK_CONSECUTIVE_BITS 8 | #define DM_CHUNK_NUMBER_BITS 56 | ||||||
| #    define DM_CHUNK_NUMBER_BITS 56 |  | ||||||
| 
 | 
 | ||||||
| static inline chunk_t dm_chunk_number(chunk_t chunk) | static inline chunk_t dm_chunk_number(chunk_t chunk) | ||||||
| { | { | ||||||
|  | @ -163,29 +162,6 @@ static inline void dm_consecutive_chunk_count_dec(struct dm_exception *e) | ||||||
| 	e->new_chunk -= (1ULL << DM_CHUNK_NUMBER_BITS); | 	e->new_chunk -= (1ULL << DM_CHUNK_NUMBER_BITS); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #  else |  | ||||||
| #    define DM_CHUNK_CONSECUTIVE_BITS 0 |  | ||||||
| 
 |  | ||||||
| static inline chunk_t dm_chunk_number(chunk_t chunk) |  | ||||||
| { |  | ||||||
| 	return chunk; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static inline unsigned dm_consecutive_chunk_count(struct dm_exception *e) |  | ||||||
| { |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static inline void dm_consecutive_chunk_count_inc(struct dm_exception *e) |  | ||||||
| { |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static inline void dm_consecutive_chunk_count_dec(struct dm_exception *e) |  | ||||||
| { |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #  endif |  | ||||||
| 
 |  | ||||||
| /*
 | /*
 | ||||||
|  * Return the number of sectors in the device. |  * Return the number of sectors in the device. | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
|  | @ -88,14 +88,10 @@ struct journal_entry { | ||||||
| 
 | 
 | ||||||
| #if BITS_PER_LONG == 64 | #if BITS_PER_LONG == 64 | ||||||
| #define journal_entry_set_sector(je, x)		do { smp_wmb(); WRITE_ONCE((je)->u.sector, cpu_to_le64(x)); } while (0) | #define journal_entry_set_sector(je, x)		do { smp_wmb(); WRITE_ONCE((je)->u.sector, cpu_to_le64(x)); } while (0) | ||||||
| #define journal_entry_get_sector(je)		le64_to_cpu((je)->u.sector) |  | ||||||
| #elif defined(CONFIG_LBDAF) |  | ||||||
| #define journal_entry_set_sector(je, x)		do { (je)->u.s.sector_lo = cpu_to_le32(x); smp_wmb(); WRITE_ONCE((je)->u.s.sector_hi, cpu_to_le32((x) >> 32)); } while (0) |  | ||||||
| #define journal_entry_get_sector(je)		le64_to_cpu((je)->u.sector) |  | ||||||
| #else | #else | ||||||
| #define journal_entry_set_sector(je, x)		do { (je)->u.s.sector_lo = cpu_to_le32(x); smp_wmb(); WRITE_ONCE((je)->u.s.sector_hi, cpu_to_le32(0)); } while (0) | #define journal_entry_set_sector(je, x)		do { (je)->u.s.sector_lo = cpu_to_le32(x); smp_wmb(); WRITE_ONCE((je)->u.s.sector_hi, cpu_to_le32((x) >> 32)); } while (0) | ||||||
| #define journal_entry_get_sector(je)		le32_to_cpu((je)->u.s.sector_lo) |  | ||||||
| #endif | #endif | ||||||
|  | #define journal_entry_get_sector(je)		le64_to_cpu((je)->u.sector) | ||||||
| #define journal_entry_is_unused(je)		((je)->u.s.sector_hi == cpu_to_le32(-1)) | #define journal_entry_is_unused(je)		((je)->u.s.sector_hi == cpu_to_le32(-1)) | ||||||
| #define journal_entry_set_unused(je)		do { ((je)->u.s.sector_hi = cpu_to_le32(-1)); } while (0) | #define journal_entry_set_unused(je)		do { ((je)->u.s.sector_hi = cpu_to_le32(-1)); } while (0) | ||||||
| #define journal_entry_is_inprogress(je)		((je)->u.s.sector_hi == cpu_to_le32(-2)) | #define journal_entry_is_inprogress(je)		((je)->u.s.sector_hi == cpu_to_le32(-2)) | ||||||
|  |  | ||||||
|  | @ -1106,8 +1106,7 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor | ||||||
| 	 * (not needed for Linear and RAID0 as metadata doesn't | 	 * (not needed for Linear and RAID0 as metadata doesn't | ||||||
| 	 * record this size) | 	 * record this size) | ||||||
| 	 */ | 	 */ | ||||||
| 	if (IS_ENABLED(CONFIG_LBDAF) && (u64)rdev->sectors >= (2ULL << 32) && | 	if ((u64)rdev->sectors >= (2ULL << 32) && sb->level >= 1) | ||||||
| 	    sb->level >= 1) |  | ||||||
| 		rdev->sectors = (sector_t)(2ULL << 32) - 2; | 		rdev->sectors = (sector_t)(2ULL << 32) - 2; | ||||||
| 
 | 
 | ||||||
| 	if (rdev->sectors < ((sector_t)sb->size) * 2 && sb->level >= 1) | 	if (rdev->sectors < ((sector_t)sb->size) * 2 && sb->level >= 1) | ||||||
|  | @ -1405,8 +1404,7 @@ super_90_rdev_size_change(struct md_rdev *rdev, sector_t num_sectors) | ||||||
| 	/* Limit to 4TB as metadata cannot record more than that.
 | 	/* Limit to 4TB as metadata cannot record more than that.
 | ||||||
| 	 * 4TB == 2^32 KB, or 2*2^32 sectors. | 	 * 4TB == 2^32 KB, or 2*2^32 sectors. | ||||||
| 	 */ | 	 */ | ||||||
| 	if (IS_ENABLED(CONFIG_LBDAF) && (u64)num_sectors >= (2ULL << 32) && | 	if ((u64)num_sectors >= (2ULL << 32) && rdev->mddev->level >= 1) | ||||||
| 	    rdev->mddev->level >= 1) |  | ||||||
| 		num_sectors = (sector_t)(2ULL << 32) - 2; | 		num_sectors = (sector_t)(2ULL << 32) - 2; | ||||||
| 	do { | 	do { | ||||||
| 		md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size, | 		md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size, | ||||||
|  |  | ||||||
|  | @ -391,7 +391,7 @@ static int nd_pfn_clear_memmap_errors(struct nd_pfn *nd_pfn) | ||||||
| 		bb_present = badblocks_check(&nd_region->bb, meta_start, | 		bb_present = badblocks_check(&nd_region->bb, meta_start, | ||||||
| 				meta_num, &first_bad, &num_bad); | 				meta_num, &first_bad, &num_bad); | ||||||
| 		if (bb_present) { | 		if (bb_present) { | ||||||
| 			dev_dbg(&nd_pfn->dev, "meta: %x badblocks at %lx\n", | 			dev_dbg(&nd_pfn->dev, "meta: %x badblocks at %llx\n", | ||||||
| 					num_bad, first_bad); | 					num_bad, first_bad); | ||||||
| 			nsoff = ALIGN_DOWN((nd_region->ndr_start | 			nsoff = ALIGN_DOWN((nd_region->ndr_start | ||||||
| 					+ (first_bad << 9)) - nsio->res.start, | 					+ (first_bad << 9)) - nsio->res.start, | ||||||
|  | @ -410,7 +410,7 @@ static int nd_pfn_clear_memmap_errors(struct nd_pfn *nd_pfn) | ||||||
| 			} | 			} | ||||||
| 			if (rc) { | 			if (rc) { | ||||||
| 				dev_err(&nd_pfn->dev, | 				dev_err(&nd_pfn->dev, | ||||||
| 					"error clearing %x badblocks at %lx\n", | 					"error clearing %x badblocks at %llx\n", | ||||||
| 					num_bad, first_bad); | 					num_bad, first_bad); | ||||||
| 				return rc; | 				return rc; | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | @ -2256,22 +2256,6 @@ static void read_capacity_error(struct scsi_disk *sdkp, struct scsi_device *sdp, | ||||||
| 
 | 
 | ||||||
| #define READ_CAPACITY_RETRIES_ON_RESET	10 | #define READ_CAPACITY_RETRIES_ON_RESET	10 | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * Ensure that we don't overflow sector_t when CONFIG_LBDAF is not set |  | ||||||
|  * and the reported logical block size is bigger than 512 bytes. Note |  | ||||||
|  * that last_sector is a u64 and therefore logical_to_sectors() is not |  | ||||||
|  * applicable. |  | ||||||
|  */ |  | ||||||
| static bool sd_addressable_capacity(u64 lba, unsigned int sector_size) |  | ||||||
| { |  | ||||||
| 	u64 last_sector = (lba + 1ULL) << (ilog2(sector_size) - 9); |  | ||||||
| 
 |  | ||||||
| 	if (sizeof(sector_t) == 4 && last_sector > U32_MAX) |  | ||||||
| 		return false; |  | ||||||
| 
 |  | ||||||
| 	return true; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static int read_capacity_16(struct scsi_disk *sdkp, struct scsi_device *sdp, | static int read_capacity_16(struct scsi_disk *sdkp, struct scsi_device *sdp, | ||||||
| 						unsigned char *buffer) | 						unsigned char *buffer) | ||||||
| { | { | ||||||
|  | @ -2337,14 +2321,6 @@ static int read_capacity_16(struct scsi_disk *sdkp, struct scsi_device *sdp, | ||||||
| 		return -ENODEV; | 		return -ENODEV; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (!sd_addressable_capacity(lba, sector_size)) { |  | ||||||
| 		sd_printk(KERN_ERR, sdkp, "Too big for this kernel. Use a " |  | ||||||
| 			"kernel compiled with support for large block " |  | ||||||
| 			"devices.\n"); |  | ||||||
| 		sdkp->capacity = 0; |  | ||||||
| 		return -EOVERFLOW; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	/* Logical blocks per physical block exponent */ | 	/* Logical blocks per physical block exponent */ | ||||||
| 	sdkp->physical_block_size = (1 << (buffer[13] & 0xf)) * sector_size; | 	sdkp->physical_block_size = (1 << (buffer[13] & 0xf)) * sector_size; | ||||||
| 
 | 
 | ||||||
|  | @ -2426,14 +2402,6 @@ static int read_capacity_10(struct scsi_disk *sdkp, struct scsi_device *sdp, | ||||||
| 		return sector_size; | 		return sector_size; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (!sd_addressable_capacity(lba, sector_size)) { |  | ||||||
| 		sd_printk(KERN_ERR, sdkp, "Too big for this kernel. Use a " |  | ||||||
| 			"kernel compiled with support for large block " |  | ||||||
| 			"devices.\n"); |  | ||||||
| 		sdkp->capacity = 0; |  | ||||||
| 		return -EOVERFLOW; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	sdkp->capacity = lba + 1; | 	sdkp->capacity = lba + 1; | ||||||
| 	sdkp->physical_block_size = sector_size; | 	sdkp->physical_block_size = sector_size; | ||||||
| 	return sector_size; | 	return sector_size; | ||||||
|  |  | ||||||
|  | @ -1760,8 +1760,6 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, | ||||||
| 		ext4_msg(sb, KERN_ERR, | 		ext4_msg(sb, KERN_ERR, | ||||||
| 			 "filesystem too large to resize to %llu blocks safely", | 			 "filesystem too large to resize to %llu blocks safely", | ||||||
| 			 n_blocks_count); | 			 n_blocks_count); | ||||||
| 		if (sizeof(sector_t) < 8) |  | ||||||
| 			ext4_warning(sb, "CONFIG_LBDAF not enabled"); |  | ||||||
| 		return -EINVAL; | 		return -EINVAL; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2706,13 +2706,9 @@ static loff_t ext4_max_size(int blkbits, int has_huge_files) | ||||||
| 	loff_t res; | 	loff_t res; | ||||||
| 	loff_t upper_limit = MAX_LFS_FILESIZE; | 	loff_t upper_limit = MAX_LFS_FILESIZE; | ||||||
| 
 | 
 | ||||||
| 	/* small i_blocks in vfs inode? */ | 	BUILD_BUG_ON(sizeof(blkcnt_t) < sizeof(u64)); | ||||||
| 	if (!has_huge_files || sizeof(blkcnt_t) < sizeof(u64)) { | 
 | ||||||
| 		/*
 | 	if (!has_huge_files) { | ||||||
| 		 * CONFIG_LBDAF is not enabled implies the inode |  | ||||||
| 		 * i_block represent total blocks in 512 bytes |  | ||||||
| 		 * 32 == size of vfs inode i_blocks * 8 |  | ||||||
| 		 */ |  | ||||||
| 		upper_limit = (1LL << 32) - 1; | 		upper_limit = (1LL << 32) - 1; | ||||||
| 
 | 
 | ||||||
| 		/* total blocks in file system block size */ | 		/* total blocks in file system block size */ | ||||||
|  | @ -2753,11 +2749,11 @@ static loff_t ext4_max_bitmap_size(int bits, int has_huge_files) | ||||||
| 	 * number of 512-byte sectors of the file. | 	 * number of 512-byte sectors of the file. | ||||||
| 	 */ | 	 */ | ||||||
| 
 | 
 | ||||||
| 	if (!has_huge_files || sizeof(blkcnt_t) < sizeof(u64)) { | 	if (!has_huge_files) { | ||||||
| 		/*
 | 		/*
 | ||||||
| 		 * !has_huge_files or CONFIG_LBDAF not enabled implies that | 		 * !has_huge_files or implies that the inode i_block field | ||||||
| 		 * the inode i_block field represents total file blocks in | 		 * represents total file blocks in 2^32 512-byte sectors == | ||||||
| 		 * 2^32 512-byte sectors == size of vfs inode i_blocks * 8 | 		 * size of vfs inode i_blocks * 8 | ||||||
| 		 */ | 		 */ | ||||||
| 		upper_limit = (1LL << 32) - 1; | 		upper_limit = (1LL << 32) - 1; | ||||||
| 
 | 
 | ||||||
|  | @ -2897,18 +2893,6 @@ static int ext4_feature_set_ok(struct super_block *sb, int readonly) | ||||||
| 				~EXT4_FEATURE_RO_COMPAT_SUPP)); | 				~EXT4_FEATURE_RO_COMPAT_SUPP)); | ||||||
| 		return 0; | 		return 0; | ||||||
| 	} | 	} | ||||||
| 	/*
 |  | ||||||
| 	 * Large file size enabled file system can only be mounted |  | ||||||
| 	 * read-write on 32-bit systems if kernel is built with CONFIG_LBDAF |  | ||||||
| 	 */ |  | ||||||
| 	if (ext4_has_feature_huge_file(sb)) { |  | ||||||
| 		if (sizeof(blkcnt_t) < sizeof(u64)) { |  | ||||||
| 			ext4_msg(sb, KERN_ERR, "Filesystem with huge files " |  | ||||||
| 				 "cannot be mounted RDWR without " |  | ||||||
| 				 "CONFIG_LBDAF"); |  | ||||||
| 			return 0; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	if (ext4_has_feature_bigalloc(sb) && !ext4_has_feature_extents(sb)) { | 	if (ext4_has_feature_bigalloc(sb) && !ext4_has_feature_extents(sb)) { | ||||||
| 		ext4_msg(sb, KERN_ERR, | 		ext4_msg(sb, KERN_ERR, | ||||||
| 			 "Can't support bigalloc feature without " | 			 "Can't support bigalloc feature without " | ||||||
|  | @ -4057,8 +4041,6 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) | ||||||
| 	if (err) { | 	if (err) { | ||||||
| 		ext4_msg(sb, KERN_ERR, "filesystem" | 		ext4_msg(sb, KERN_ERR, "filesystem" | ||||||
| 			 " too large to mount safely on this system"); | 			 " too large to mount safely on this system"); | ||||||
| 		if (sizeof(sector_t) < 8) |  | ||||||
| 			ext4_msg(sb, KERN_WARNING, "CONFIG_LBDAF not enabled"); |  | ||||||
| 		goto failed_mount; | 		goto failed_mount; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,6 +1,5 @@ | ||||||
| config GFS2_FS | config GFS2_FS | ||||||
| 	tristate "GFS2 file system support" | 	tristate "GFS2 file system support" | ||||||
| 	depends on (64BIT || LBDAF) |  | ||||||
| 	select FS_POSIX_ACL | 	select FS_POSIX_ACL | ||||||
| 	select CRC32 | 	select CRC32 | ||||||
| 	select LIBCRC32C | 	select LIBCRC32C | ||||||
|  |  | ||||||
|  | @ -121,7 +121,6 @@ config PNFS_FILE_LAYOUT | ||||||
| config PNFS_BLOCK | config PNFS_BLOCK | ||||||
| 	tristate | 	tristate | ||||||
| 	depends on NFS_V4_1 && BLK_DEV_DM | 	depends on NFS_V4_1 && BLK_DEV_DM | ||||||
| 	depends on 64BIT || LBDAF |  | ||||||
| 	default NFS_V4 | 	default NFS_V4 | ||||||
| 
 | 
 | ||||||
| config PNFS_FLEXFILE_LAYOUT | config PNFS_FLEXFILE_LAYOUT | ||||||
|  |  | ||||||
|  | @ -600,7 +600,6 @@ static unsigned long long ocfs2_max_file_offset(unsigned int bbits, | ||||||
| 	 */ | 	 */ | ||||||
| 
 | 
 | ||||||
| #if BITS_PER_LONG == 32 | #if BITS_PER_LONG == 32 | ||||||
| # if defined(CONFIG_LBDAF) |  | ||||||
| 	BUILD_BUG_ON(sizeof(sector_t) != 8); | 	BUILD_BUG_ON(sizeof(sector_t) != 8); | ||||||
| 	/*
 | 	/*
 | ||||||
| 	 * We might be limited by page cache size. | 	 * We might be limited by page cache size. | ||||||
|  | @ -614,15 +613,6 @@ static unsigned long long ocfs2_max_file_offset(unsigned int bbits, | ||||||
| 		 */ | 		 */ | ||||||
| 		bitshift = 31; | 		bitshift = 31; | ||||||
| 	} | 	} | ||||||
| # else |  | ||||||
| 	/*
 |  | ||||||
| 	 * We are limited by the size of sector_t. Use block size, as |  | ||||||
| 	 * that's what we expose to the VFS. |  | ||||||
| 	 */ |  | ||||||
| 	bytes = 1 << bbits; |  | ||||||
| 	trim = 1; |  | ||||||
| 	bitshift = 31; |  | ||||||
| # endif |  | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| 	/*
 | 	/*
 | ||||||
|  |  | ||||||
							
								
								
									
										15
									
								
								fs/stack.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								fs/stack.c
									
									
									
									
									
								
							|  | @ -21,11 +21,10 @@ void fsstack_copy_inode_size(struct inode *dst, struct inode *src) | ||||||
| 	i_size = i_size_read(src); | 	i_size = i_size_read(src); | ||||||
| 
 | 
 | ||||||
| 	/*
 | 	/*
 | ||||||
| 	 * But if CONFIG_LBDAF (on 32-bit), we ought to make an effort to | 	 * But on 32-bit, we ought to make an effort to keep the two halves of | ||||||
| 	 * keep the two halves of i_blocks in sync despite SMP or PREEMPT - | 	 * i_blocks in sync despite SMP or PREEMPT - though stat's | ||||||
| 	 * though stat's generic_fillattr() doesn't bother, and we won't be | 	 * generic_fillattr() doesn't bother, and we won't be applying quotas | ||||||
| 	 * applying quotas (where i_blocks does become important) at the | 	 * (where i_blocks does become important) at the upper level. | ||||||
| 	 * upper level. |  | ||||||
| 	 * | 	 * | ||||||
| 	 * We don't actually know what locking is used at the lower level; | 	 * We don't actually know what locking is used at the lower level; | ||||||
| 	 * but if it's a filesystem that supports quotas, it will be using | 	 * but if it's a filesystem that supports quotas, it will be using | ||||||
|  | @ -44,9 +43,9 @@ void fsstack_copy_inode_size(struct inode *dst, struct inode *src) | ||||||
| 	 * include/linux/fs.h).  We don't necessarily hold i_mutex when this | 	 * include/linux/fs.h).  We don't necessarily hold i_mutex when this | ||||||
| 	 * is called, so take i_lock for that case. | 	 * is called, so take i_lock for that case. | ||||||
| 	 * | 	 * | ||||||
| 	 * And if CONFIG_LBDAF (on 32-bit), continue our effort to keep the | 	 * And if on 32-bit, continue our effort to keep the two halves of | ||||||
| 	 * two halves of i_blocks in sync despite SMP or PREEMPT: use i_lock | 	 * i_blocks in sync despite SMP or PREEMPT: use i_lock  for that case | ||||||
| 	 * for that case too, and do both at once by combining the tests. | 	 * too, and do both at once by combining the tests. | ||||||
| 	 * | 	 * | ||||||
| 	 * There is none of this locking overhead in the 64-bit case. | 	 * There is none of this locking overhead in the 64-bit case. | ||||||
| 	 */ | 	 */ | ||||||
|  |  | ||||||
|  | @ -1,7 +1,6 @@ | ||||||
| config XFS_FS | config XFS_FS | ||||||
| 	tristate "XFS filesystem support" | 	tristate "XFS filesystem support" | ||||||
| 	depends on BLOCK | 	depends on BLOCK | ||||||
| 	depends on (64BIT || LBDAF) |  | ||||||
| 	select EXPORTFS | 	select EXPORTFS | ||||||
| 	select LIBCRC32C | 	select LIBCRC32C | ||||||
| 	select FS_IOMAP | 	select FS_IOMAP | ||||||
|  |  | ||||||
|  | @ -539,26 +539,18 @@ xfs_max_file_offset( | ||||||
| 
 | 
 | ||||||
| 	/* Figure out maximum filesize, on Linux this can depend on
 | 	/* Figure out maximum filesize, on Linux this can depend on
 | ||||||
| 	 * the filesystem blocksize (on 32 bit platforms). | 	 * the filesystem blocksize (on 32 bit platforms). | ||||||
| 	 * __block_write_begin does this in an [unsigned] long... | 	 * __block_write_begin does this in an [unsigned] long long... | ||||||
| 	 *      page->index << (PAGE_SHIFT - bbits) | 	 *      page->index << (PAGE_SHIFT - bbits) | ||||||
| 	 * So, for page sized blocks (4K on 32 bit platforms), | 	 * So, for page sized blocks (4K on 32 bit platforms), | ||||||
| 	 * this wraps at around 8Tb (hence MAX_LFS_FILESIZE which is | 	 * this wraps at around 8Tb (hence MAX_LFS_FILESIZE which is | ||||||
| 	 *      (((u64)PAGE_SIZE << (BITS_PER_LONG-1))-1) | 	 *      (((u64)PAGE_SIZE << (BITS_PER_LONG-1))-1) | ||||||
| 	 * but for smaller blocksizes it is less (bbits = log2 bsize). | 	 * but for smaller blocksizes it is less (bbits = log2 bsize). | ||||||
| 	 * Note1: get_block_t takes a long (implicit cast from above) |  | ||||||
| 	 * Note2: The Large Block Device (LBD and HAVE_SECTOR_T) patch |  | ||||||
| 	 * can optionally convert the [unsigned] long from above into |  | ||||||
| 	 * an [unsigned] long long. |  | ||||||
| 	 */ | 	 */ | ||||||
| 
 | 
 | ||||||
| #if BITS_PER_LONG == 32 | #if BITS_PER_LONG == 32 | ||||||
| # if defined(CONFIG_LBDAF) |  | ||||||
| 	ASSERT(sizeof(sector_t) == 8); | 	ASSERT(sizeof(sector_t) == 8); | ||||||
| 	pagefactor = PAGE_SIZE; | 	pagefactor = PAGE_SIZE; | ||||||
| 	bitshift = BITS_PER_LONG; | 	bitshift = BITS_PER_LONG; | ||||||
| # else |  | ||||||
| 	pagefactor = PAGE_SIZE >> (PAGE_SHIFT - blockshift); |  | ||||||
| # endif |  | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| 	return (((uint64_t)pagefactor) << bitshift) - 1; | 	return (((uint64_t)pagefactor) << bitshift) - 1; | ||||||
|  |  | ||||||
|  | @ -714,7 +714,7 @@ static inline void hd_free_part(struct hd_struct *part) | ||||||
|  */ |  */ | ||||||
| static inline sector_t part_nr_sects_read(struct hd_struct *part) | static inline sector_t part_nr_sects_read(struct hd_struct *part) | ||||||
| { | { | ||||||
| #if BITS_PER_LONG==32 && defined(CONFIG_LBDAF) && defined(CONFIG_SMP) | #if BITS_PER_LONG==32 && defined(CONFIG_SMP) | ||||||
| 	sector_t nr_sects; | 	sector_t nr_sects; | ||||||
| 	unsigned seq; | 	unsigned seq; | ||||||
| 	do { | 	do { | ||||||
|  | @ -722,7 +722,7 @@ static inline sector_t part_nr_sects_read(struct hd_struct *part) | ||||||
| 		nr_sects = part->nr_sects; | 		nr_sects = part->nr_sects; | ||||||
| 	} while (read_seqcount_retry(&part->nr_sects_seq, seq)); | 	} while (read_seqcount_retry(&part->nr_sects_seq, seq)); | ||||||
| 	return nr_sects; | 	return nr_sects; | ||||||
| #elif BITS_PER_LONG==32 && defined(CONFIG_LBDAF) && defined(CONFIG_PREEMPT) | #elif BITS_PER_LONG==32 && defined(CONFIG_PREEMPT) | ||||||
| 	sector_t nr_sects; | 	sector_t nr_sects; | ||||||
| 
 | 
 | ||||||
| 	preempt_disable(); | 	preempt_disable(); | ||||||
|  | @ -741,11 +741,11 @@ static inline sector_t part_nr_sects_read(struct hd_struct *part) | ||||||
|  */ |  */ | ||||||
| static inline void part_nr_sects_write(struct hd_struct *part, sector_t size) | static inline void part_nr_sects_write(struct hd_struct *part, sector_t size) | ||||||
| { | { | ||||||
| #if BITS_PER_LONG==32 && defined(CONFIG_LBDAF) && defined(CONFIG_SMP) | #if BITS_PER_LONG==32 && defined(CONFIG_SMP) | ||||||
| 	write_seqcount_begin(&part->nr_sects_seq); | 	write_seqcount_begin(&part->nr_sects_seq); | ||||||
| 	part->nr_sects = size; | 	part->nr_sects = size; | ||||||
| 	write_seqcount_end(&part->nr_sects_seq); | 	write_seqcount_end(&part->nr_sects_seq); | ||||||
| #elif BITS_PER_LONG==32 && defined(CONFIG_LBDAF) && defined(CONFIG_PREEMPT) | #elif BITS_PER_LONG==32 && defined(CONFIG_PREEMPT) | ||||||
| 	preempt_disable(); | 	preempt_disable(); | ||||||
| 	part->nr_sects = size; | 	part->nr_sects = size; | ||||||
| 	preempt_enable(); | 	preempt_enable(); | ||||||
|  |  | ||||||
|  | @ -17,6 +17,7 @@ | ||||||
| #include <asm/byteorder.h> | #include <asm/byteorder.h> | ||||||
| #include <asm/div64.h> | #include <asm/div64.h> | ||||||
| #include <uapi/linux/kernel.h> | #include <uapi/linux/kernel.h> | ||||||
|  | #include <asm/div64.h> | ||||||
| 
 | 
 | ||||||
| #define STACK_MAGIC	0xdeadbeef | #define STACK_MAGIC	0xdeadbeef | ||||||
| 
 | 
 | ||||||
|  | @ -175,18 +176,7 @@ | ||||||
| #define _RET_IP_		(unsigned long)__builtin_return_address(0) | #define _RET_IP_		(unsigned long)__builtin_return_address(0) | ||||||
| #define _THIS_IP_  ({ __label__ __here; __here: (unsigned long)&&__here; }) | #define _THIS_IP_  ({ __label__ __here; __here: (unsigned long)&&__here; }) | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_LBDAF | #define sector_div(a, b) do_div(a, b) | ||||||
| # define sector_div(a, b) do_div(a, b) |  | ||||||
| #else |  | ||||||
| # define sector_div(n, b)( \ |  | ||||||
| { \ |  | ||||||
| 	int _res; \ |  | ||||||
| 	_res = (n) % (b); \ |  | ||||||
| 	(n) /= (b); \ |  | ||||||
| 	_res; \ |  | ||||||
| } \ |  | ||||||
| ) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * upper_32_bits - return bits 32-63 of a number |  * upper_32_bits - return bits 32-63 of a number | ||||||
|  |  | ||||||
|  | @ -127,13 +127,8 @@ typedef s64			int64_t; | ||||||
|  * |  * | ||||||
|  * blkcnt_t is the type of the inode's block count. |  * blkcnt_t is the type of the inode's block count. | ||||||
|  */ |  */ | ||||||
| #ifdef CONFIG_LBDAF |  | ||||||
| typedef u64 sector_t; | typedef u64 sector_t; | ||||||
| typedef u64 blkcnt_t; | typedef u64 blkcnt_t; | ||||||
| #else |  | ||||||
| typedef unsigned long sector_t; |  | ||||||
| typedef unsigned long blkcnt_t; |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * The type of an index into the pagecache. |  * The type of an index into the pagecache. | ||||||
|  |  | ||||||
|  | @ -1927,7 +1927,6 @@ config TEST_STATIC_KEYS | ||||||
| config TEST_KMOD | config TEST_KMOD | ||||||
| 	tristate "kmod stress tester" | 	tristate "kmod stress tester" | ||||||
| 	depends on m | 	depends on m | ||||||
| 	depends on BLOCK && (64BIT || LBDAF)	  # for XFS, BTRFS |  | ||||||
| 	depends on NETDEVICES && NET_CORE && INET # for TUN | 	depends on NETDEVICES && NET_CORE && INET # for TUN | ||||||
| 	select TEST_LKM | 	select TEST_LKM | ||||||
| 	select XFS_FS | 	select XFS_FS | ||||||
|  |  | ||||||
|  | @ -59,11 +59,7 @@ typedef		__u32		uint32_t; | ||||||
|  * |  * | ||||||
|  * blkcnt_t is the type of the inode's block count. |  * blkcnt_t is the type of the inode's block count. | ||||||
|  */ |  */ | ||||||
| #ifdef CONFIG_LBDAF |  | ||||||
| typedef u64 sector_t; | typedef u64 sector_t; | ||||||
| #else |  | ||||||
| typedef unsigned long sector_t; |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * The type of an index into the pagecache. |  * The type of an index into the pagecache. | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Christoph Hellwig
						Christoph Hellwig