diff options
| author | Jiri Kosina <jkosina@suse.cz> | 2010-12-22 12:57:02 -0500 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2010-12-22 12:57:02 -0500 |
| commit | 4b7bd364700d9ac8372eff48832062b936d0793b (patch) | |
| tree | 0dbf78c95456a0b02d07fcd473281f04a87e266d /fs/jbd2 | |
| parent | c0d8768af260e2cbb4bf659ae6094a262c86b085 (diff) | |
| parent | 90a8a73c06cc32b609a880d48449d7083327e11a (diff) | |
Merge branch 'master' into for-next
Conflicts:
MAINTAINERS
arch/arm/mach-omap2/pm24xx.c
drivers/scsi/bfa/bfa_fcpim.c
Needed to update to apply fixes for which the old branch was too
outdated.
Diffstat (limited to 'fs/jbd2')
| -rw-r--r-- | fs/jbd2/journal.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 538417c1fdbb..f837ba953529 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c | |||
| @@ -899,6 +899,14 @@ journal_t * jbd2_journal_init_dev(struct block_device *bdev, | |||
| 899 | 899 | ||
| 900 | /* journal descriptor can store up to n blocks -bzzz */ | 900 | /* journal descriptor can store up to n blocks -bzzz */ |
| 901 | journal->j_blocksize = blocksize; | 901 | journal->j_blocksize = blocksize; |
| 902 | journal->j_dev = bdev; | ||
| 903 | journal->j_fs_dev = fs_dev; | ||
| 904 | journal->j_blk_offset = start; | ||
| 905 | journal->j_maxlen = len; | ||
| 906 | bdevname(journal->j_dev, journal->j_devname); | ||
| 907 | p = journal->j_devname; | ||
| 908 | while ((p = strchr(p, '/'))) | ||
| 909 | *p = '!'; | ||
| 902 | jbd2_stats_proc_init(journal); | 910 | jbd2_stats_proc_init(journal); |
| 903 | n = journal->j_blocksize / sizeof(journal_block_tag_t); | 911 | n = journal->j_blocksize / sizeof(journal_block_tag_t); |
| 904 | journal->j_wbufsize = n; | 912 | journal->j_wbufsize = n; |
| @@ -908,14 +916,6 @@ journal_t * jbd2_journal_init_dev(struct block_device *bdev, | |||
| 908 | __func__); | 916 | __func__); |
| 909 | goto out_err; | 917 | goto out_err; |
| 910 | } | 918 | } |
| 911 | journal->j_dev = bdev; | ||
| 912 | journal->j_fs_dev = fs_dev; | ||
| 913 | journal->j_blk_offset = start; | ||
| 914 | journal->j_maxlen = len; | ||
| 915 | bdevname(journal->j_dev, journal->j_devname); | ||
| 916 | p = journal->j_devname; | ||
| 917 | while ((p = strchr(p, '/'))) | ||
| 918 | *p = '!'; | ||
| 919 | 919 | ||
| 920 | bh = __getblk(journal->j_dev, start, journal->j_blocksize); | 920 | bh = __getblk(journal->j_dev, start, journal->j_blocksize); |
| 921 | if (!bh) { | 921 | if (!bh) { |
| @@ -1838,7 +1838,6 @@ size_t journal_tag_bytes(journal_t *journal) | |||
| 1838 | */ | 1838 | */ |
| 1839 | #define JBD2_MAX_SLABS 8 | 1839 | #define JBD2_MAX_SLABS 8 |
| 1840 | static struct kmem_cache *jbd2_slab[JBD2_MAX_SLABS]; | 1840 | static struct kmem_cache *jbd2_slab[JBD2_MAX_SLABS]; |
| 1841 | static DECLARE_MUTEX(jbd2_slab_create_sem); | ||
| 1842 | 1841 | ||
| 1843 | static const char *jbd2_slab_names[JBD2_MAX_SLABS] = { | 1842 | static const char *jbd2_slab_names[JBD2_MAX_SLABS] = { |
| 1844 | "jbd2_1k", "jbd2_2k", "jbd2_4k", "jbd2_8k", | 1843 | "jbd2_1k", "jbd2_2k", "jbd2_4k", "jbd2_8k", |
| @@ -1859,6 +1858,7 @@ static void jbd2_journal_destroy_slabs(void) | |||
| 1859 | 1858 | ||
| 1860 | static int jbd2_journal_create_slab(size_t size) | 1859 | static int jbd2_journal_create_slab(size_t size) |
| 1861 | { | 1860 | { |
| 1861 | static DEFINE_MUTEX(jbd2_slab_create_mutex); | ||
| 1862 | int i = order_base_2(size) - 10; | 1862 | int i = order_base_2(size) - 10; |
| 1863 | size_t slab_size; | 1863 | size_t slab_size; |
| 1864 | 1864 | ||
| @@ -1870,16 +1870,16 @@ static int jbd2_journal_create_slab(size_t size) | |||
| 1870 | 1870 | ||
| 1871 | if (unlikely(i < 0)) | 1871 | if (unlikely(i < 0)) |
| 1872 | i = 0; | 1872 | i = 0; |
| 1873 | down(&jbd2_slab_create_sem); | 1873 | mutex_lock(&jbd2_slab_create_mutex); |
| 1874 | if (jbd2_slab[i]) { | 1874 | if (jbd2_slab[i]) { |
| 1875 | up(&jbd2_slab_create_sem); | 1875 | mutex_unlock(&jbd2_slab_create_mutex); |
| 1876 | return 0; /* Already created */ | 1876 | return 0; /* Already created */ |
| 1877 | } | 1877 | } |
| 1878 | 1878 | ||
| 1879 | slab_size = 1 << (i+10); | 1879 | slab_size = 1 << (i+10); |
| 1880 | jbd2_slab[i] = kmem_cache_create(jbd2_slab_names[i], slab_size, | 1880 | jbd2_slab[i] = kmem_cache_create(jbd2_slab_names[i], slab_size, |
| 1881 | slab_size, 0, NULL); | 1881 | slab_size, 0, NULL); |
| 1882 | up(&jbd2_slab_create_sem); | 1882 | mutex_unlock(&jbd2_slab_create_mutex); |
| 1883 | if (!jbd2_slab[i]) { | 1883 | if (!jbd2_slab[i]) { |
| 1884 | printk(KERN_EMERG "JBD2: no memory for jbd2_slab cache\n"); | 1884 | printk(KERN_EMERG "JBD2: no memory for jbd2_slab cache\n"); |
| 1885 | return -ENOMEM; | 1885 | return -ENOMEM; |
