diff options
| author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-10-09 16:33:05 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-10-09 16:33:05 -0400 |
| commit | c97f68145e8067b3ac4b126a6faebf90f9ffc302 (patch) | |
| tree | eb2060681552a00e9efa98224b95f69a3dc84390 /fs | |
| parent | b1add0480a95b6ceaece5caf6c50614771eae9b2 (diff) | |
| parent | 7bff3c4ce44ea48f50dc47a5994454984bd08c59 (diff) | |
Merge branch 'for-rmk' of git://source.mvista.com/git/linux-davinci-2.6.git
Merge branch 'davinci' into devel
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/bfs/dir.c | 2 | ||||
| -rw-r--r-- | fs/ocfs2/aops.c | 2 | ||||
| -rw-r--r-- | fs/partitions/check.c | 4 | ||||
| -rw-r--r-- | fs/proc/generic.c | 4 | ||||
| -rw-r--r-- | fs/proc/proc_misc.c | 12 | ||||
| -rw-r--r-- | fs/udf/file.c | 1 | ||||
| -rw-r--r-- | fs/udf/ialloc.c | 44 |
7 files changed, 34 insertions, 35 deletions
diff --git a/fs/bfs/dir.c b/fs/bfs/dir.c index 87ee5ccee348..ed8feb052df9 100644 --- a/fs/bfs/dir.c +++ b/fs/bfs/dir.c | |||
| @@ -125,8 +125,8 @@ static int bfs_create(struct inode *dir, struct dentry *dentry, int mode, | |||
| 125 | inode->i_ino); | 125 | inode->i_ino); |
| 126 | if (err) { | 126 | if (err) { |
| 127 | inode_dec_link_count(inode); | 127 | inode_dec_link_count(inode); |
| 128 | iput(inode); | ||
| 129 | mutex_unlock(&info->bfs_lock); | 128 | mutex_unlock(&info->bfs_lock); |
| 129 | iput(inode); | ||
| 130 | return err; | 130 | return err; |
| 131 | } | 131 | } |
| 132 | mutex_unlock(&info->bfs_lock); | 132 | mutex_unlock(&info->bfs_lock); |
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index 506c24fb5078..a53da1466277 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c | |||
| @@ -594,7 +594,7 @@ static int ocfs2_direct_IO_get_blocks(struct inode *inode, sector_t iblock, | |||
| 594 | goto bail; | 594 | goto bail; |
| 595 | } | 595 | } |
| 596 | 596 | ||
| 597 | if (!ocfs2_sparse_alloc(OCFS2_SB(inode->i_sb)) && !p_blkno) { | 597 | if (!ocfs2_sparse_alloc(OCFS2_SB(inode->i_sb)) && !p_blkno && create) { |
| 598 | ocfs2_error(inode->i_sb, | 598 | ocfs2_error(inode->i_sb, |
| 599 | "Inode %llu has a hole at block %llu\n", | 599 | "Inode %llu has a hole at block %llu\n", |
| 600 | (unsigned long long)OCFS2_I(inode)->ip_blkno, | 600 | (unsigned long long)OCFS2_I(inode)->ip_blkno, |
diff --git a/fs/partitions/check.c b/fs/partitions/check.c index 7d6b34e201db..ecc3330972e5 100644 --- a/fs/partitions/check.c +++ b/fs/partitions/check.c | |||
| @@ -499,9 +499,9 @@ int rescan_partitions(struct gendisk *disk, struct block_device *bdev) | |||
| 499 | if (!size) | 499 | if (!size) |
| 500 | continue; | 500 | continue; |
| 501 | if (from + size > get_capacity(disk)) { | 501 | if (from + size > get_capacity(disk)) { |
| 502 | printk(KERN_ERR " %s: p%d exceeds device capacity\n", | 502 | printk(KERN_WARNING |
| 503 | "%s: p%d exceeds device capacity\n", | ||
| 503 | disk->disk_name, p); | 504 | disk->disk_name, p); |
| 504 | continue; | ||
| 505 | } | 505 | } |
| 506 | res = add_partition(disk, p, from, size, state->parts[p].flags); | 506 | res = add_partition(disk, p, from, size, state->parts[p].flags); |
| 507 | if (res) { | 507 | if (res) { |
diff --git a/fs/proc/generic.c b/fs/proc/generic.c index bca0f81eb687..7821589a17d5 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c | |||
| @@ -547,8 +547,8 @@ static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp | |||
| 547 | 547 | ||
| 548 | for (tmp = dir->subdir; tmp; tmp = tmp->next) | 548 | for (tmp = dir->subdir; tmp; tmp = tmp->next) |
| 549 | if (strcmp(tmp->name, dp->name) == 0) { | 549 | if (strcmp(tmp->name, dp->name) == 0) { |
| 550 | printk(KERN_WARNING "proc_dir_entry '%s' already " | 550 | printk(KERN_WARNING "proc_dir_entry '%s/%s' already registered\n", |
| 551 | "registered\n", dp->name); | 551 | dir->name, dp->name); |
| 552 | dump_stack(); | 552 | dump_stack(); |
| 553 | break; | 553 | break; |
| 554 | } | 554 | } |
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c index 00f10a2dcf12..29e20c6b1f7f 100644 --- a/fs/proc/proc_misc.c +++ b/fs/proc/proc_misc.c | |||
| @@ -183,6 +183,9 @@ static int meminfo_read_proc(char *page, char **start, off_t off, | |||
| 183 | "SReclaimable: %8lu kB\n" | 183 | "SReclaimable: %8lu kB\n" |
| 184 | "SUnreclaim: %8lu kB\n" | 184 | "SUnreclaim: %8lu kB\n" |
| 185 | "PageTables: %8lu kB\n" | 185 | "PageTables: %8lu kB\n" |
| 186 | #ifdef CONFIG_QUICKLIST | ||
| 187 | "Quicklists: %8lu kB\n" | ||
| 188 | #endif | ||
| 186 | "NFS_Unstable: %8lu kB\n" | 189 | "NFS_Unstable: %8lu kB\n" |
| 187 | "Bounce: %8lu kB\n" | 190 | "Bounce: %8lu kB\n" |
| 188 | "WritebackTmp: %8lu kB\n" | 191 | "WritebackTmp: %8lu kB\n" |
| @@ -190,8 +193,7 @@ static int meminfo_read_proc(char *page, char **start, off_t off, | |||
| 190 | "Committed_AS: %8lu kB\n" | 193 | "Committed_AS: %8lu kB\n" |
| 191 | "VmallocTotal: %8lu kB\n" | 194 | "VmallocTotal: %8lu kB\n" |
| 192 | "VmallocUsed: %8lu kB\n" | 195 | "VmallocUsed: %8lu kB\n" |
| 193 | "VmallocChunk: %8lu kB\n" | 196 | "VmallocChunk: %8lu kB\n", |
| 194 | "Quicklists: %8lu kB\n", | ||
| 195 | K(i.totalram), | 197 | K(i.totalram), |
| 196 | K(i.freeram), | 198 | K(i.freeram), |
| 197 | K(i.bufferram), | 199 | K(i.bufferram), |
| @@ -216,6 +218,9 @@ static int meminfo_read_proc(char *page, char **start, off_t off, | |||
| 216 | K(global_page_state(NR_SLAB_RECLAIMABLE)), | 218 | K(global_page_state(NR_SLAB_RECLAIMABLE)), |
| 217 | K(global_page_state(NR_SLAB_UNRECLAIMABLE)), | 219 | K(global_page_state(NR_SLAB_UNRECLAIMABLE)), |
| 218 | K(global_page_state(NR_PAGETABLE)), | 220 | K(global_page_state(NR_PAGETABLE)), |
| 221 | #ifdef CONFIG_QUICKLIST | ||
| 222 | K(quicklist_total_size()), | ||
| 223 | #endif | ||
| 219 | K(global_page_state(NR_UNSTABLE_NFS)), | 224 | K(global_page_state(NR_UNSTABLE_NFS)), |
| 220 | K(global_page_state(NR_BOUNCE)), | 225 | K(global_page_state(NR_BOUNCE)), |
| 221 | K(global_page_state(NR_WRITEBACK_TEMP)), | 226 | K(global_page_state(NR_WRITEBACK_TEMP)), |
| @@ -223,8 +228,7 @@ static int meminfo_read_proc(char *page, char **start, off_t off, | |||
| 223 | K(committed), | 228 | K(committed), |
| 224 | (unsigned long)VMALLOC_TOTAL >> 10, | 229 | (unsigned long)VMALLOC_TOTAL >> 10, |
| 225 | vmi.used >> 10, | 230 | vmi.used >> 10, |
| 226 | vmi.largest_chunk >> 10, | 231 | vmi.largest_chunk >> 10 |
| 227 | K(quicklist_total_size()) | ||
| 228 | ); | 232 | ); |
| 229 | 233 | ||
| 230 | len += hugetlb_report_meminfo(page + len); | 234 | len += hugetlb_report_meminfo(page + len); |
diff --git a/fs/udf/file.c b/fs/udf/file.c index 0ed6e146a0d9..eb91f3b70320 100644 --- a/fs/udf/file.c +++ b/fs/udf/file.c | |||
| @@ -211,6 +211,7 @@ const struct file_operations udf_file_operations = { | |||
| 211 | .release = udf_release_file, | 211 | .release = udf_release_file, |
| 212 | .fsync = udf_fsync_file, | 212 | .fsync = udf_fsync_file, |
| 213 | .splice_read = generic_file_splice_read, | 213 | .splice_read = generic_file_splice_read, |
| 214 | .llseek = generic_file_llseek, | ||
| 214 | }; | 215 | }; |
| 215 | 216 | ||
| 216 | const struct inode_operations udf_file_inode_operations = { | 217 | const struct inode_operations udf_file_inode_operations = { |
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c index eb9cfa23dc3d..a4f2b3ce45b0 100644 --- a/fs/udf/ialloc.c +++ b/fs/udf/ialloc.c | |||
| @@ -76,11 +76,24 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err) | |||
| 76 | *err = -ENOSPC; | 76 | *err = -ENOSPC; |
| 77 | 77 | ||
| 78 | iinfo = UDF_I(inode); | 78 | iinfo = UDF_I(inode); |
| 79 | iinfo->i_unique = 0; | 79 | if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_EXTENDED_FE)) { |
| 80 | iinfo->i_lenExtents = 0; | 80 | iinfo->i_efe = 1; |
| 81 | iinfo->i_next_alloc_block = 0; | 81 | if (UDF_VERS_USE_EXTENDED_FE > sbi->s_udfrev) |
| 82 | iinfo->i_next_alloc_goal = 0; | 82 | sbi->s_udfrev = UDF_VERS_USE_EXTENDED_FE; |
| 83 | iinfo->i_strat4096 = 0; | 83 | iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize - |
| 84 | sizeof(struct extendedFileEntry), | ||
| 85 | GFP_KERNEL); | ||
| 86 | } else { | ||
| 87 | iinfo->i_efe = 0; | ||
| 88 | iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize - | ||
| 89 | sizeof(struct fileEntry), | ||
| 90 | GFP_KERNEL); | ||
| 91 | } | ||
| 92 | if (!iinfo->i_ext.i_data) { | ||
| 93 | iput(inode); | ||
| 94 | *err = -ENOMEM; | ||
| 95 | return NULL; | ||
| 96 | } | ||
| 84 | 97 | ||
| 85 | block = udf_new_block(dir->i_sb, NULL, | 98 | block = udf_new_block(dir->i_sb, NULL, |
| 86 | dinfo->i_location.partitionReferenceNum, | 99 | dinfo->i_location.partitionReferenceNum, |
| @@ -111,6 +124,7 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err) | |||
| 111 | lvhd->uniqueID = cpu_to_le64(uniqueID); | 124 | lvhd->uniqueID = cpu_to_le64(uniqueID); |
| 112 | mark_buffer_dirty(sbi->s_lvid_bh); | 125 | mark_buffer_dirty(sbi->s_lvid_bh); |
| 113 | } | 126 | } |
| 127 | mutex_unlock(&sbi->s_alloc_mutex); | ||
| 114 | inode->i_mode = mode; | 128 | inode->i_mode = mode; |
| 115 | inode->i_uid = current->fsuid; | 129 | inode->i_uid = current->fsuid; |
| 116 | if (dir->i_mode & S_ISGID) { | 130 | if (dir->i_mode & S_ISGID) { |
| @@ -129,25 +143,6 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err) | |||
| 129 | iinfo->i_lenEAttr = 0; | 143 | iinfo->i_lenEAttr = 0; |
| 130 | iinfo->i_lenAlloc = 0; | 144 | iinfo->i_lenAlloc = 0; |
| 131 | iinfo->i_use = 0; | 145 | iinfo->i_use = 0; |
| 132 | if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_EXTENDED_FE)) { | ||
| 133 | iinfo->i_efe = 1; | ||
| 134 | if (UDF_VERS_USE_EXTENDED_FE > sbi->s_udfrev) | ||
| 135 | sbi->s_udfrev = UDF_VERS_USE_EXTENDED_FE; | ||
| 136 | iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize - | ||
| 137 | sizeof(struct extendedFileEntry), | ||
| 138 | GFP_KERNEL); | ||
| 139 | } else { | ||
| 140 | iinfo->i_efe = 0; | ||
| 141 | iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize - | ||
| 142 | sizeof(struct fileEntry), | ||
| 143 | GFP_KERNEL); | ||
| 144 | } | ||
| 145 | if (!iinfo->i_ext.i_data) { | ||
| 146 | iput(inode); | ||
| 147 | *err = -ENOMEM; | ||
| 148 | mutex_unlock(&sbi->s_alloc_mutex); | ||
| 149 | return NULL; | ||
| 150 | } | ||
| 151 | if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_AD_IN_ICB)) | 146 | if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_AD_IN_ICB)) |
| 152 | iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; | 147 | iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; |
| 153 | else if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_SHORT_AD)) | 148 | else if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_SHORT_AD)) |
| @@ -158,7 +153,6 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err) | |||
| 158 | iinfo->i_crtime = current_fs_time(inode->i_sb); | 153 | iinfo->i_crtime = current_fs_time(inode->i_sb); |
| 159 | insert_inode_hash(inode); | 154 | insert_inode_hash(inode); |
| 160 | mark_inode_dirty(inode); | 155 | mark_inode_dirty(inode); |
| 161 | mutex_unlock(&sbi->s_alloc_mutex); | ||
| 162 | 156 | ||
| 163 | if (DQUOT_ALLOC_INODE(inode)) { | 157 | if (DQUOT_ALLOC_INODE(inode)) { |
| 164 | DQUOT_DROP(inode); | 158 | DQUOT_DROP(inode); |
