diff options
Diffstat (limited to 'fs')
41 files changed, 529 insertions, 394 deletions
diff --git a/fs/9p/conv.c b/fs/9p/conv.c index 55ccfa10ee9e..32a9f99154e2 100644 --- a/fs/9p/conv.c +++ b/fs/9p/conv.c | |||
| @@ -56,7 +56,7 @@ static inline int buf_check_overflow(struct cbuf *buf) | |||
| 56 | return buf->p > buf->ep; | 56 | return buf->p > buf->ep; |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | static inline int buf_check_size(struct cbuf *buf, int len) | 59 | static int buf_check_size(struct cbuf *buf, int len) |
| 60 | { | 60 | { |
| 61 | if (buf->p + len > buf->ep) { | 61 | if (buf->p + len > buf->ep) { |
| 62 | if (buf->p < buf->ep) { | 62 | if (buf->p < buf->ep) { |
| @@ -72,7 +72,7 @@ static inline int buf_check_size(struct cbuf *buf, int len) | |||
| 72 | return 1; | 72 | return 1; |
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | static inline void *buf_alloc(struct cbuf *buf, int len) | 75 | static void *buf_alloc(struct cbuf *buf, int len) |
| 76 | { | 76 | { |
| 77 | void *ret = NULL; | 77 | void *ret = NULL; |
| 78 | 78 | ||
| @@ -84,7 +84,7 @@ static inline void *buf_alloc(struct cbuf *buf, int len) | |||
| 84 | return ret; | 84 | return ret; |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | static inline void buf_put_int8(struct cbuf *buf, u8 val) | 87 | static void buf_put_int8(struct cbuf *buf, u8 val) |
| 88 | { | 88 | { |
| 89 | if (buf_check_size(buf, 1)) { | 89 | if (buf_check_size(buf, 1)) { |
| 90 | buf->p[0] = val; | 90 | buf->p[0] = val; |
| @@ -92,7 +92,7 @@ static inline void buf_put_int8(struct cbuf *buf, u8 val) | |||
| 92 | } | 92 | } |
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | static inline void buf_put_int16(struct cbuf *buf, u16 val) | 95 | static void buf_put_int16(struct cbuf *buf, u16 val) |
| 96 | { | 96 | { |
| 97 | if (buf_check_size(buf, 2)) { | 97 | if (buf_check_size(buf, 2)) { |
| 98 | *(__le16 *) buf->p = cpu_to_le16(val); | 98 | *(__le16 *) buf->p = cpu_to_le16(val); |
| @@ -100,7 +100,7 @@ static inline void buf_put_int16(struct cbuf *buf, u16 val) | |||
| 100 | } | 100 | } |
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | static inline void buf_put_int32(struct cbuf *buf, u32 val) | 103 | static void buf_put_int32(struct cbuf *buf, u32 val) |
| 104 | { | 104 | { |
| 105 | if (buf_check_size(buf, 4)) { | 105 | if (buf_check_size(buf, 4)) { |
| 106 | *(__le32 *)buf->p = cpu_to_le32(val); | 106 | *(__le32 *)buf->p = cpu_to_le32(val); |
| @@ -108,7 +108,7 @@ static inline void buf_put_int32(struct cbuf *buf, u32 val) | |||
| 108 | } | 108 | } |
| 109 | } | 109 | } |
| 110 | 110 | ||
| 111 | static inline void buf_put_int64(struct cbuf *buf, u64 val) | 111 | static void buf_put_int64(struct cbuf *buf, u64 val) |
| 112 | { | 112 | { |
| 113 | if (buf_check_size(buf, 8)) { | 113 | if (buf_check_size(buf, 8)) { |
| 114 | *(__le64 *)buf->p = cpu_to_le64(val); | 114 | *(__le64 *)buf->p = cpu_to_le64(val); |
| @@ -116,7 +116,7 @@ static inline void buf_put_int64(struct cbuf *buf, u64 val) | |||
| 116 | } | 116 | } |
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | static inline void buf_put_stringn(struct cbuf *buf, const char *s, u16 slen) | 119 | static void buf_put_stringn(struct cbuf *buf, const char *s, u16 slen) |
| 120 | { | 120 | { |
| 121 | if (buf_check_size(buf, slen + 2)) { | 121 | if (buf_check_size(buf, slen + 2)) { |
| 122 | buf_put_int16(buf, slen); | 122 | buf_put_int16(buf, slen); |
| @@ -130,7 +130,7 @@ static inline void buf_put_string(struct cbuf *buf, const char *s) | |||
| 130 | buf_put_stringn(buf, s, strlen(s)); | 130 | buf_put_stringn(buf, s, strlen(s)); |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | static inline u8 buf_get_int8(struct cbuf *buf) | 133 | static u8 buf_get_int8(struct cbuf *buf) |
| 134 | { | 134 | { |
| 135 | u8 ret = 0; | 135 | u8 ret = 0; |
| 136 | 136 | ||
| @@ -142,7 +142,7 @@ static inline u8 buf_get_int8(struct cbuf *buf) | |||
| 142 | return ret; | 142 | return ret; |
| 143 | } | 143 | } |
| 144 | 144 | ||
| 145 | static inline u16 buf_get_int16(struct cbuf *buf) | 145 | static u16 buf_get_int16(struct cbuf *buf) |
| 146 | { | 146 | { |
| 147 | u16 ret = 0; | 147 | u16 ret = 0; |
| 148 | 148 | ||
| @@ -154,7 +154,7 @@ static inline u16 buf_get_int16(struct cbuf *buf) | |||
| 154 | return ret; | 154 | return ret; |
| 155 | } | 155 | } |
| 156 | 156 | ||
| 157 | static inline u32 buf_get_int32(struct cbuf *buf) | 157 | static u32 buf_get_int32(struct cbuf *buf) |
| 158 | { | 158 | { |
| 159 | u32 ret = 0; | 159 | u32 ret = 0; |
| 160 | 160 | ||
| @@ -166,7 +166,7 @@ static inline u32 buf_get_int32(struct cbuf *buf) | |||
| 166 | return ret; | 166 | return ret; |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | static inline u64 buf_get_int64(struct cbuf *buf) | 169 | static u64 buf_get_int64(struct cbuf *buf) |
| 170 | { | 170 | { |
| 171 | u64 ret = 0; | 171 | u64 ret = 0; |
| 172 | 172 | ||
| @@ -178,7 +178,7 @@ static inline u64 buf_get_int64(struct cbuf *buf) | |||
| 178 | return ret; | 178 | return ret; |
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | static inline void buf_get_str(struct cbuf *buf, struct v9fs_str *vstr) | 181 | static void buf_get_str(struct cbuf *buf, struct v9fs_str *vstr) |
| 182 | { | 182 | { |
| 183 | vstr->len = buf_get_int16(buf); | 183 | vstr->len = buf_get_int16(buf); |
| 184 | if (!buf_check_overflow(buf) && buf_check_size(buf, vstr->len)) { | 184 | if (!buf_check_overflow(buf) && buf_check_size(buf, vstr->len)) { |
| @@ -190,7 +190,7 @@ static inline void buf_get_str(struct cbuf *buf, struct v9fs_str *vstr) | |||
| 190 | } | 190 | } |
| 191 | } | 191 | } |
| 192 | 192 | ||
| 193 | static inline void buf_get_qid(struct cbuf *bufp, struct v9fs_qid *qid) | 193 | static void buf_get_qid(struct cbuf *bufp, struct v9fs_qid *qid) |
| 194 | { | 194 | { |
| 195 | qid->type = buf_get_int8(bufp); | 195 | qid->type = buf_get_int8(bufp); |
| 196 | qid->version = buf_get_int32(bufp); | 196 | qid->version = buf_get_int32(bufp); |
| @@ -254,7 +254,7 @@ static int v9fs_size_wstat(struct v9fs_wstat *wstat, int extended) | |||
| 254 | * | 254 | * |
| 255 | */ | 255 | */ |
| 256 | 256 | ||
| 257 | static inline void | 257 | static void |
| 258 | buf_get_stat(struct cbuf *bufp, struct v9fs_stat *stat, int extended) | 258 | buf_get_stat(struct cbuf *bufp, struct v9fs_stat *stat, int extended) |
| 259 | { | 259 | { |
| 260 | stat->size = buf_get_int16(bufp); | 260 | stat->size = buf_get_int16(bufp); |
| @@ -427,7 +427,7 @@ static inline void v9fs_put_int64(struct cbuf *bufp, u64 val, u64 * p) | |||
| 427 | buf_put_int64(bufp, val); | 427 | buf_put_int64(bufp, val); |
| 428 | } | 428 | } |
| 429 | 429 | ||
| 430 | static inline void | 430 | static void |
| 431 | v9fs_put_str(struct cbuf *bufp, char *data, struct v9fs_str *str) | 431 | v9fs_put_str(struct cbuf *bufp, char *data, struct v9fs_str *str) |
| 432 | { | 432 | { |
| 433 | if (data) { | 433 | if (data) { |
| @@ -441,7 +441,7 @@ v9fs_put_str(struct cbuf *bufp, char *data, struct v9fs_str *str) | |||
| 441 | buf_put_stringn(bufp, data, str->len); | 441 | buf_put_stringn(bufp, data, str->len); |
| 442 | } | 442 | } |
| 443 | 443 | ||
| 444 | static inline int | 444 | static int |
| 445 | v9fs_put_user_data(struct cbuf *bufp, const char __user * data, int count, | 445 | v9fs_put_user_data(struct cbuf *bufp, const char __user * data, int count, |
| 446 | unsigned char **pdata) | 446 | unsigned char **pdata) |
| 447 | { | 447 | { |
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c index e93a7ae467c9..62d8d4acb8bb 100644 --- a/fs/autofs4/root.c +++ b/fs/autofs4/root.c | |||
| @@ -195,6 +195,8 @@ static int autofs4_dir_open(struct inode *inode, struct file *file) | |||
| 195 | if (!empty) | 195 | if (!empty) |
| 196 | d_invalidate(dentry); | 196 | d_invalidate(dentry); |
| 197 | 197 | ||
| 198 | nd.dentry = dentry; | ||
| 199 | nd.mnt = mnt; | ||
| 198 | nd.flags = LOOKUP_DIRECTORY; | 200 | nd.flags = LOOKUP_DIRECTORY; |
| 199 | status = (dentry->d_op->d_revalidate)(dentry, &nd); | 201 | status = (dentry->d_op->d_revalidate)(dentry, &nd); |
| 200 | 202 | ||
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index f979ebbce49c..1b117a441298 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
| @@ -1218,7 +1218,7 @@ static int writenote(struct memelfnote *men, struct file *file) | |||
| 1218 | if (!dump_seek(file, (off))) \ | 1218 | if (!dump_seek(file, (off))) \ |
| 1219 | goto end_coredump; | 1219 | goto end_coredump; |
| 1220 | 1220 | ||
| 1221 | static inline void fill_elf_header(struct elfhdr *elf, int segs) | 1221 | static void fill_elf_header(struct elfhdr *elf, int segs) |
| 1222 | { | 1222 | { |
| 1223 | memcpy(elf->e_ident, ELFMAG, SELFMAG); | 1223 | memcpy(elf->e_ident, ELFMAG, SELFMAG); |
| 1224 | elf->e_ident[EI_CLASS] = ELF_CLASS; | 1224 | elf->e_ident[EI_CLASS] = ELF_CLASS; |
| @@ -1243,7 +1243,7 @@ static inline void fill_elf_header(struct elfhdr *elf, int segs) | |||
| 1243 | return; | 1243 | return; |
| 1244 | } | 1244 | } |
| 1245 | 1245 | ||
| 1246 | static inline void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, off_t offset) | 1246 | static void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, off_t offset) |
| 1247 | { | 1247 | { |
| 1248 | phdr->p_type = PT_NOTE; | 1248 | phdr->p_type = PT_NOTE; |
| 1249 | phdr->p_offset = offset; | 1249 | phdr->p_offset = offset; |
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c index 9ccc7d8275b8..6a7b730c206b 100644 --- a/fs/binfmt_misc.c +++ b/fs/binfmt_misc.c | |||
| @@ -264,7 +264,7 @@ static int unquote(char *from) | |||
| 264 | return p - from; | 264 | return p - from; |
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | static inline char * check_special_flags (char * sfs, Node * e) | 267 | static char * check_special_flags (char * sfs, Node * e) |
| 268 | { | 268 | { |
| 269 | char * p = sfs; | 269 | char * p = sfs; |
| 270 | int cont = 1; | 270 | int cont = 1; |
| @@ -123,7 +123,7 @@ static void bio_fs_destructor(struct bio *bio) | |||
| 123 | bio_free(bio, fs_bio_set); | 123 | bio_free(bio, fs_bio_set); |
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | inline void bio_init(struct bio *bio) | 126 | void bio_init(struct bio *bio) |
| 127 | { | 127 | { |
| 128 | bio->bi_next = NULL; | 128 | bio->bi_next = NULL; |
| 129 | bio->bi_bdev = NULL; | 129 | bio->bi_bdev = NULL; |
| @@ -253,7 +253,7 @@ inline int bio_hw_segments(request_queue_t *q, struct bio *bio) | |||
| 253 | * the actual data it points to. Reference count of returned | 253 | * the actual data it points to. Reference count of returned |
| 254 | * bio will be one. | 254 | * bio will be one. |
| 255 | */ | 255 | */ |
| 256 | inline void __bio_clone(struct bio *bio, struct bio *bio_src) | 256 | void __bio_clone(struct bio *bio, struct bio *bio_src) |
| 257 | { | 257 | { |
| 258 | request_queue_t *q = bdev_get_queue(bio_src->bi_bdev); | 258 | request_queue_t *q = bdev_get_queue(bio_src->bi_bdev); |
| 259 | 259 | ||
diff --git a/fs/buffer.c b/fs/buffer.c index b9bb7ad6897b..7cdf48a9a501 100644 --- a/fs/buffer.c +++ b/fs/buffer.c | |||
| @@ -1165,7 +1165,7 @@ failed: | |||
| 1165 | * some of those buffers may be aliases of filesystem data. | 1165 | * some of those buffers may be aliases of filesystem data. |
| 1166 | * grow_dev_page() will go BUG() if this happens. | 1166 | * grow_dev_page() will go BUG() if this happens. |
| 1167 | */ | 1167 | */ |
| 1168 | static inline int | 1168 | static int |
| 1169 | grow_buffers(struct block_device *bdev, sector_t block, int size) | 1169 | grow_buffers(struct block_device *bdev, sector_t block, int size) |
| 1170 | { | 1170 | { |
| 1171 | struct page *page; | 1171 | struct page *page; |
| @@ -1391,7 +1391,7 @@ static void bh_lru_install(struct buffer_head *bh) | |||
| 1391 | /* | 1391 | /* |
| 1392 | * Look up the bh in this cpu's LRU. If it's there, move it to the head. | 1392 | * Look up the bh in this cpu's LRU. If it's there, move it to the head. |
| 1393 | */ | 1393 | */ |
| 1394 | static inline struct buffer_head * | 1394 | static struct buffer_head * |
| 1395 | lookup_bh_lru(struct block_device *bdev, sector_t block, int size) | 1395 | lookup_bh_lru(struct block_device *bdev, sector_t block, int size) |
| 1396 | { | 1396 | { |
| 1397 | struct buffer_head *ret = NULL; | 1397 | struct buffer_head *ret = NULL; |
| @@ -1541,7 +1541,7 @@ EXPORT_SYMBOL(set_bh_page); | |||
| 1541 | /* | 1541 | /* |
| 1542 | * Called when truncating a buffer on a page completely. | 1542 | * Called when truncating a buffer on a page completely. |
| 1543 | */ | 1543 | */ |
| 1544 | static inline void discard_buffer(struct buffer_head * bh) | 1544 | static void discard_buffer(struct buffer_head * bh) |
| 1545 | { | 1545 | { |
| 1546 | lock_buffer(bh); | 1546 | lock_buffer(bh); |
| 1547 | clear_buffer_dirty(bh); | 1547 | clear_buffer_dirty(bh); |
diff --git a/fs/char_dev.c b/fs/char_dev.c index 3b1b1eefdbb0..21195c481637 100644 --- a/fs/char_dev.c +++ b/fs/char_dev.c | |||
| @@ -35,7 +35,7 @@ static struct char_device_struct { | |||
| 35 | unsigned int major; | 35 | unsigned int major; |
| 36 | unsigned int baseminor; | 36 | unsigned int baseminor; |
| 37 | int minorct; | 37 | int minorct; |
| 38 | const char *name; | 38 | char name[64]; |
| 39 | struct file_operations *fops; | 39 | struct file_operations *fops; |
| 40 | struct cdev *cdev; /* will die */ | 40 | struct cdev *cdev; /* will die */ |
| 41 | } *chrdevs[MAX_PROBE_HASH]; | 41 | } *chrdevs[MAX_PROBE_HASH]; |
| @@ -46,34 +46,84 @@ static inline int major_to_index(int major) | |||
| 46 | return major % MAX_PROBE_HASH; | 46 | return major % MAX_PROBE_HASH; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | /* get char device names in somewhat random order */ | 49 | struct chrdev_info { |
| 50 | int get_chrdev_list(char *page) | 50 | int index; |
| 51 | { | ||
| 52 | struct char_device_struct *cd; | 51 | struct char_device_struct *cd; |
| 53 | int i, len; | 52 | }; |
| 54 | 53 | ||
| 55 | len = sprintf(page, "Character devices:\n"); | 54 | void *get_next_chrdev(void *dev) |
| 55 | { | ||
| 56 | struct chrdev_info *info; | ||
| 56 | 57 | ||
| 58 | if (dev == NULL) { | ||
| 59 | info = kmalloc(sizeof(*info), GFP_KERNEL); | ||
| 60 | if (!info) | ||
| 61 | goto out; | ||
| 62 | info->index=0; | ||
| 63 | info->cd = chrdevs[info->index]; | ||
| 64 | if (info->cd) | ||
| 65 | goto out; | ||
| 66 | } else { | ||
| 67 | info = dev; | ||
| 68 | } | ||
| 69 | |||
| 70 | while (info->index < ARRAY_SIZE(chrdevs)) { | ||
| 71 | if (info->cd) | ||
| 72 | info->cd = info->cd->next; | ||
| 73 | if (info->cd) | ||
| 74 | goto out; | ||
| 75 | /* | ||
| 76 | * No devices on this chain, move to the next | ||
| 77 | */ | ||
| 78 | info->index++; | ||
| 79 | info->cd = (info->index < ARRAY_SIZE(chrdevs)) ? | ||
| 80 | chrdevs[info->index] : NULL; | ||
| 81 | if (info->cd) | ||
| 82 | goto out; | ||
| 83 | } | ||
| 84 | |||
| 85 | out: | ||
| 86 | return info; | ||
| 87 | } | ||
| 88 | |||
| 89 | void *acquire_chrdev_list(void) | ||
| 90 | { | ||
| 57 | down(&chrdevs_lock); | 91 | down(&chrdevs_lock); |
| 92 | return get_next_chrdev(NULL); | ||
| 93 | } | ||
| 94 | |||
| 95 | void release_chrdev_list(void *dev) | ||
| 96 | { | ||
| 97 | up(&chrdevs_lock); | ||
| 98 | kfree(dev); | ||
| 99 | } | ||
| 100 | |||
| 101 | |||
| 102 | int count_chrdev_list(void) | ||
| 103 | { | ||
| 104 | struct char_device_struct *cd; | ||
| 105 | int i, count; | ||
| 106 | |||
| 107 | count = 0; | ||
| 108 | |||
| 58 | for (i = 0; i < ARRAY_SIZE(chrdevs) ; i++) { | 109 | for (i = 0; i < ARRAY_SIZE(chrdevs) ; i++) { |
| 59 | for (cd = chrdevs[i]; cd; cd = cd->next) { | 110 | for (cd = chrdevs[i]; cd; cd = cd->next) |
| 60 | /* | 111 | count++; |
| 61 | * if the current name, plus the 5 extra characters | ||
| 62 | * in the device line for this entry | ||
| 63 | * would run us off the page, we're done | ||
| 64 | */ | ||
| 65 | if ((len+strlen(cd->name) + 5) >= PAGE_SIZE) | ||
| 66 | goto page_full; | ||
| 67 | |||
| 68 | |||
| 69 | len += sprintf(page+len, "%3d %s\n", | ||
| 70 | cd->major, cd->name); | ||
| 71 | } | ||
| 72 | } | 112 | } |
| 73 | page_full: | ||
| 74 | up(&chrdevs_lock); | ||
| 75 | 113 | ||
| 76 | return len; | 114 | return count; |
| 115 | } | ||
| 116 | |||
| 117 | int get_chrdev_info(void *dev, int *major, char **name) | ||
| 118 | { | ||
| 119 | struct chrdev_info *info = dev; | ||
| 120 | |||
| 121 | if (info->cd == NULL) | ||
| 122 | return 1; | ||
| 123 | |||
| 124 | *major = info->cd->major; | ||
| 125 | *name = info->cd->name; | ||
| 126 | return 0; | ||
| 77 | } | 127 | } |
| 78 | 128 | ||
| 79 | /* | 129 | /* |
| @@ -121,7 +171,7 @@ __register_chrdev_region(unsigned int major, unsigned int baseminor, | |||
| 121 | cd->major = major; | 171 | cd->major = major; |
| 122 | cd->baseminor = baseminor; | 172 | cd->baseminor = baseminor; |
| 123 | cd->minorct = minorct; | 173 | cd->minorct = minorct; |
| 124 | cd->name = name; | 174 | strncpy(cd->name,name, 64); |
| 125 | 175 | ||
| 126 | i = major_to_index(major); | 176 | i = major_to_index(major); |
| 127 | 177 | ||
diff --git a/fs/compat.c b/fs/compat.c index 271b75d1597f..2468ac1df2f0 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
| @@ -1537,7 +1537,7 @@ out_ret: | |||
| 1537 | * Ooo, nasty. We need here to frob 32-bit unsigned longs to | 1537 | * Ooo, nasty. We need here to frob 32-bit unsigned longs to |
| 1538 | * 64-bit unsigned longs. | 1538 | * 64-bit unsigned longs. |
| 1539 | */ | 1539 | */ |
| 1540 | static inline | 1540 | static |
| 1541 | int compat_get_fd_set(unsigned long nr, compat_ulong_t __user *ufdset, | 1541 | int compat_get_fd_set(unsigned long nr, compat_ulong_t __user *ufdset, |
| 1542 | unsigned long *fdset) | 1542 | unsigned long *fdset) |
| 1543 | { | 1543 | { |
| @@ -1570,7 +1570,7 @@ int compat_get_fd_set(unsigned long nr, compat_ulong_t __user *ufdset, | |||
| 1570 | return 0; | 1570 | return 0; |
| 1571 | } | 1571 | } |
| 1572 | 1572 | ||
| 1573 | static inline | 1573 | static |
| 1574 | void compat_set_fd_set(unsigned long nr, compat_ulong_t __user *ufdset, | 1574 | void compat_set_fd_set(unsigned long nr, compat_ulong_t __user *ufdset, |
| 1575 | unsigned long *fdset) | 1575 | unsigned long *fdset) |
| 1576 | { | 1576 | { |
diff --git a/fs/dcache.c b/fs/dcache.c index 134d6775183f..86bdb93789c6 100644 --- a/fs/dcache.c +++ b/fs/dcache.c | |||
| @@ -94,7 +94,7 @@ static void d_free(struct dentry *dentry) | |||
| 94 | * d_iput() operation if defined. | 94 | * d_iput() operation if defined. |
| 95 | * Called with dcache_lock and per dentry lock held, drops both. | 95 | * Called with dcache_lock and per dentry lock held, drops both. |
| 96 | */ | 96 | */ |
| 97 | static inline void dentry_iput(struct dentry * dentry) | 97 | static void dentry_iput(struct dentry * dentry) |
| 98 | { | 98 | { |
| 99 | struct inode *inode = dentry->d_inode; | 99 | struct inode *inode = dentry->d_inode; |
| 100 | if (inode) { | 100 | if (inode) { |
diff --git a/fs/efs/super.c b/fs/efs/super.c index d8d5ea9a9997..afc4891feb36 100644 --- a/fs/efs/super.c +++ b/fs/efs/super.c | |||
| @@ -222,12 +222,13 @@ static efs_block_t efs_validate_vh(struct volume_header *vh) { | |||
| 222 | sblock); | 222 | sblock); |
| 223 | #endif | 223 | #endif |
| 224 | } | 224 | } |
| 225 | return(sblock); | 225 | return sblock; |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | static int efs_validate_super(struct efs_sb_info *sb, struct efs_super *super) { | 228 | static int efs_validate_super(struct efs_sb_info *sb, struct efs_super *super) { |
| 229 | 229 | ||
| 230 | if (!IS_EFS_MAGIC(be32_to_cpu(super->fs_magic))) return -1; | 230 | if (!IS_EFS_MAGIC(be32_to_cpu(super->fs_magic))) |
| 231 | return -1; | ||
| 231 | 232 | ||
| 232 | sb->fs_magic = be32_to_cpu(super->fs_magic); | 233 | sb->fs_magic = be32_to_cpu(super->fs_magic); |
| 233 | sb->total_blocks = be32_to_cpu(super->fs_size); | 234 | sb->total_blocks = be32_to_cpu(super->fs_size); |
| @@ -575,7 +575,7 @@ static int exec_mmap(struct mm_struct *mm) | |||
| 575 | * disturbing other processes. (Other processes might share the signal | 575 | * disturbing other processes. (Other processes might share the signal |
| 576 | * table via the CLONE_SIGHAND option to clone().) | 576 | * table via the CLONE_SIGHAND option to clone().) |
| 577 | */ | 577 | */ |
| 578 | static inline int de_thread(struct task_struct *tsk) | 578 | static int de_thread(struct task_struct *tsk) |
| 579 | { | 579 | { |
| 580 | struct signal_struct *sig = tsk->signal; | 580 | struct signal_struct *sig = tsk->signal; |
| 581 | struct sighand_struct *newsighand, *oldsighand = tsk->sighand; | 581 | struct sighand_struct *newsighand, *oldsighand = tsk->sighand; |
| @@ -780,7 +780,7 @@ no_thread_group: | |||
| 780 | * so that a new one can be started | 780 | * so that a new one can be started |
| 781 | */ | 781 | */ |
| 782 | 782 | ||
| 783 | static inline void flush_old_files(struct files_struct * files) | 783 | static void flush_old_files(struct files_struct * files) |
| 784 | { | 784 | { |
| 785 | long j = -1; | 785 | long j = -1; |
| 786 | struct fdtable *fdt; | 786 | struct fdtable *fdt; |
| @@ -964,7 +964,7 @@ int prepare_binprm(struct linux_binprm *bprm) | |||
| 964 | 964 | ||
| 965 | EXPORT_SYMBOL(prepare_binprm); | 965 | EXPORT_SYMBOL(prepare_binprm); |
| 966 | 966 | ||
| 967 | static inline int unsafe_exec(struct task_struct *p) | 967 | static int unsafe_exec(struct task_struct *p) |
| 968 | { | 968 | { |
| 969 | int unsafe = 0; | 969 | int unsafe = 0; |
| 970 | if (p->ptrace & PT_PTRACED) { | 970 | if (p->ptrace & PT_PTRACED) { |
diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c index c5513953c825..ad1432a2a62e 100644 --- a/fs/ext2/namei.c +++ b/fs/ext2/namei.c | |||
| @@ -83,10 +83,7 @@ static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, str | |||
| 83 | if (!inode) | 83 | if (!inode) |
| 84 | return ERR_PTR(-EACCES); | 84 | return ERR_PTR(-EACCES); |
| 85 | } | 85 | } |
| 86 | if (inode) | 86 | return d_splice_alias(inode, dentry); |
| 87 | return d_splice_alias(inode, dentry); | ||
| 88 | d_add(dentry, inode); | ||
| 89 | return NULL; | ||
| 90 | } | 87 | } |
| 91 | 88 | ||
| 92 | struct dentry *ext2_get_parent(struct dentry *child) | 89 | struct dentry *ext2_get_parent(struct dentry *child) |
diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c index af193a304ee5..8bd8ac077704 100644 --- a/fs/ext3/namei.c +++ b/fs/ext3/namei.c | |||
| @@ -1005,10 +1005,7 @@ static struct dentry *ext3_lookup(struct inode * dir, struct dentry *dentry, str | |||
| 1005 | if (!inode) | 1005 | if (!inode) |
| 1006 | return ERR_PTR(-EACCES); | 1006 | return ERR_PTR(-EACCES); |
| 1007 | } | 1007 | } |
| 1008 | if (inode) | 1008 | return d_splice_alias(inode, dentry); |
| 1009 | return d_splice_alias(inode, dentry); | ||
| 1010 | d_add(dentry, inode); | ||
| 1011 | return NULL; | ||
| 1012 | } | 1009 | } |
| 1013 | 1010 | ||
| 1014 | 1011 | ||
diff --git a/fs/fcntl.c b/fs/fcntl.c index d0767fe58362..5f96786d1c73 100644 --- a/fs/fcntl.c +++ b/fs/fcntl.c | |||
| @@ -36,7 +36,7 @@ void fastcall set_close_on_exec(unsigned int fd, int flag) | |||
| 36 | spin_unlock(&files->file_lock); | 36 | spin_unlock(&files->file_lock); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | static inline int get_close_on_exec(unsigned int fd) | 39 | static int get_close_on_exec(unsigned int fd) |
| 40 | { | 40 | { |
| 41 | struct files_struct *files = current->files; | 41 | struct files_struct *files = current->files; |
| 42 | struct fdtable *fdt; | 42 | struct fdtable *fdt; |
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index ab4c3a9d51b8..f568102da1e8 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c | |||
| @@ -402,7 +402,7 @@ static struct inode *hugetlbfs_get_inode(struct super_block *sb, uid_t uid, | |||
| 402 | inode->i_mapping->backing_dev_info =&hugetlbfs_backing_dev_info; | 402 | inode->i_mapping->backing_dev_info =&hugetlbfs_backing_dev_info; |
| 403 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 403 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
| 404 | info = HUGETLBFS_I(inode); | 404 | info = HUGETLBFS_I(inode); |
| 405 | mpol_shared_policy_init(&info->policy); | 405 | mpol_shared_policy_init(&info->policy, MPOL_DEFAULT, NULL); |
| 406 | switch (mode & S_IFMT) { | 406 | switch (mode & S_IFMT) { |
| 407 | default: | 407 | default: |
| 408 | init_special_inode(inode, mode, dev); | 408 | init_special_inode(inode, mode, dev); |
diff --git a/fs/isofs/namei.c b/fs/isofs/namei.c index e37e82b7cbf0..e7ba0c30e071 100644 --- a/fs/isofs/namei.c +++ b/fs/isofs/namei.c | |||
| @@ -185,8 +185,5 @@ struct dentry *isofs_lookup(struct inode * dir, struct dentry * dentry, struct n | |||
| 185 | } | 185 | } |
| 186 | } | 186 | } |
| 187 | unlock_kernel(); | 187 | unlock_kernel(); |
| 188 | if (inode) | 188 | return d_splice_alias(inode, dentry); |
| 189 | return d_splice_alias(inode, dentry); | ||
| 190 | d_add(dentry, inode); | ||
| 191 | return NULL; | ||
| 192 | } | 189 | } |
diff --git a/fs/jffs2/build.c b/fs/jffs2/build.c index fff108bb118b..70f7a896c04a 100644 --- a/fs/jffs2/build.c +++ b/fs/jffs2/build.c | |||
| @@ -47,7 +47,7 @@ next_inode(int *i, struct jffs2_inode_cache *ic, struct jffs2_sb_info *c) | |||
| 47 | ic = next_inode(&i, ic, (c))) | 47 | ic = next_inode(&i, ic, (c))) |
| 48 | 48 | ||
| 49 | 49 | ||
| 50 | static inline void jffs2_build_inode_pass1(struct jffs2_sb_info *c, | 50 | static void jffs2_build_inode_pass1(struct jffs2_sb_info *c, |
| 51 | struct jffs2_inode_cache *ic) | 51 | struct jffs2_inode_cache *ic) |
| 52 | { | 52 | { |
| 53 | struct jffs2_full_dirent *fd; | 53 | struct jffs2_full_dirent *fd; |
diff --git a/fs/jffs2/nodelist.c b/fs/jffs2/nodelist.c index c79eebb8ab32..b635e167a3fa 100644 --- a/fs/jffs2/nodelist.c +++ b/fs/jffs2/nodelist.c | |||
| @@ -134,7 +134,7 @@ static void jffs2_fragtree_insert(struct jffs2_node_frag *newfrag, struct jffs2_ | |||
| 134 | /* | 134 | /* |
| 135 | * Allocate and initializes a new fragment. | 135 | * Allocate and initializes a new fragment. |
| 136 | */ | 136 | */ |
| 137 | static inline struct jffs2_node_frag * new_fragment(struct jffs2_full_dnode *fn, uint32_t ofs, uint32_t size) | 137 | static struct jffs2_node_frag * new_fragment(struct jffs2_full_dnode *fn, uint32_t ofs, uint32_t size) |
| 138 | { | 138 | { |
| 139 | struct jffs2_node_frag *newfrag; | 139 | struct jffs2_node_frag *newfrag; |
| 140 | 140 | ||
| @@ -513,7 +513,7 @@ free_out: | |||
| 513 | * | 513 | * |
| 514 | * Checks the node if we are in the checking stage. | 514 | * Checks the node if we are in the checking stage. |
| 515 | */ | 515 | */ |
| 516 | static inline int check_node(struct jffs2_sb_info *c, struct jffs2_inode_info *f, struct jffs2_tmp_dnode_info *tn) | 516 | static int check_node(struct jffs2_sb_info *c, struct jffs2_inode_info *f, struct jffs2_tmp_dnode_info *tn) |
| 517 | { | 517 | { |
| 518 | int ret; | 518 | int ret; |
| 519 | 519 | ||
diff --git a/fs/lockd/xdr.c b/fs/lockd/xdr.c index f01e9c0d2677..200fbda2c6d1 100644 --- a/fs/lockd/xdr.c +++ b/fs/lockd/xdr.c | |||
| @@ -44,7 +44,7 @@ loff_t_to_s32(loff_t offset) | |||
| 44 | /* | 44 | /* |
| 45 | * XDR functions for basic NLM types | 45 | * XDR functions for basic NLM types |
| 46 | */ | 46 | */ |
| 47 | static inline u32 *nlm_decode_cookie(u32 *p, struct nlm_cookie *c) | 47 | static u32 *nlm_decode_cookie(u32 *p, struct nlm_cookie *c) |
| 48 | { | 48 | { |
| 49 | unsigned int len; | 49 | unsigned int len; |
| 50 | 50 | ||
| @@ -79,7 +79,7 @@ nlm_encode_cookie(u32 *p, struct nlm_cookie *c) | |||
| 79 | return p; | 79 | return p; |
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | static inline u32 * | 82 | static u32 * |
| 83 | nlm_decode_fh(u32 *p, struct nfs_fh *f) | 83 | nlm_decode_fh(u32 *p, struct nfs_fh *f) |
| 84 | { | 84 | { |
| 85 | unsigned int len; | 85 | unsigned int len; |
| @@ -119,7 +119,7 @@ nlm_encode_oh(u32 *p, struct xdr_netobj *oh) | |||
| 119 | return xdr_encode_netobj(p, oh); | 119 | return xdr_encode_netobj(p, oh); |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | static inline u32 * | 122 | static u32 * |
| 123 | nlm_decode_lock(u32 *p, struct nlm_lock *lock) | 123 | nlm_decode_lock(u32 *p, struct nlm_lock *lock) |
| 124 | { | 124 | { |
| 125 | struct file_lock *fl = &lock->fl; | 125 | struct file_lock *fl = &lock->fl; |
diff --git a/fs/mbcache.c b/fs/mbcache.c index 0f1e4530670f..f5bbe4c97c58 100644 --- a/fs/mbcache.c +++ b/fs/mbcache.c | |||
| @@ -126,7 +126,7 @@ __mb_cache_entry_is_hashed(struct mb_cache_entry *ce) | |||
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | 128 | ||
| 129 | static inline void | 129 | static void |
| 130 | __mb_cache_entry_unhash(struct mb_cache_entry *ce) | 130 | __mb_cache_entry_unhash(struct mb_cache_entry *ce) |
| 131 | { | 131 | { |
| 132 | int n; | 132 | int n; |
| @@ -139,7 +139,7 @@ __mb_cache_entry_unhash(struct mb_cache_entry *ce) | |||
| 139 | } | 139 | } |
| 140 | 140 | ||
| 141 | 141 | ||
| 142 | static inline void | 142 | static void |
| 143 | __mb_cache_entry_forget(struct mb_cache_entry *ce, gfp_t gfp_mask) | 143 | __mb_cache_entry_forget(struct mb_cache_entry *ce, gfp_t gfp_mask) |
| 144 | { | 144 | { |
| 145 | struct mb_cache *cache = ce->e_cache; | 145 | struct mb_cache *cache = ce->e_cache; |
| @@ -158,7 +158,7 @@ __mb_cache_entry_forget(struct mb_cache_entry *ce, gfp_t gfp_mask) | |||
| 158 | } | 158 | } |
| 159 | 159 | ||
| 160 | 160 | ||
| 161 | static inline void | 161 | static void |
| 162 | __mb_cache_entry_release_unlock(struct mb_cache_entry *ce) | 162 | __mb_cache_entry_release_unlock(struct mb_cache_entry *ce) |
| 163 | { | 163 | { |
| 164 | /* Wake up all processes queuing for this cache entry. */ | 164 | /* Wake up all processes queuing for this cache entry. */ |
diff --git a/fs/namei.c b/fs/namei.c index 1e5746eb1380..33fb5bd34a81 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
| @@ -113,7 +113,7 @@ | |||
| 113 | * POSIX.1 2.4: an empty pathname is invalid (ENOENT). | 113 | * POSIX.1 2.4: an empty pathname is invalid (ENOENT). |
| 114 | * PATH_MAX includes the nul terminator --RR. | 114 | * PATH_MAX includes the nul terminator --RR. |
| 115 | */ | 115 | */ |
| 116 | static inline int do_getname(const char __user *filename, char *page) | 116 | static int do_getname(const char __user *filename, char *page) |
| 117 | { | 117 | { |
| 118 | int retval; | 118 | int retval; |
| 119 | unsigned long len = PATH_MAX; | 119 | unsigned long len = PATH_MAX; |
| @@ -396,7 +396,7 @@ static struct dentry * cached_lookup(struct dentry * parent, struct qstr * name, | |||
| 396 | * short-cut DAC fails, then call permission() to do more | 396 | * short-cut DAC fails, then call permission() to do more |
| 397 | * complete permission check. | 397 | * complete permission check. |
| 398 | */ | 398 | */ |
| 399 | static inline int exec_permission_lite(struct inode *inode, | 399 | static int exec_permission_lite(struct inode *inode, |
| 400 | struct nameidata *nd) | 400 | struct nameidata *nd) |
| 401 | { | 401 | { |
| 402 | umode_t mode = inode->i_mode; | 402 | umode_t mode = inode->i_mode; |
| @@ -486,7 +486,7 @@ static struct dentry * real_lookup(struct dentry * parent, struct qstr * name, s | |||
| 486 | static int __emul_lookup_dentry(const char *, struct nameidata *); | 486 | static int __emul_lookup_dentry(const char *, struct nameidata *); |
| 487 | 487 | ||
| 488 | /* SMP-safe */ | 488 | /* SMP-safe */ |
| 489 | static inline int | 489 | static __always_inline int |
| 490 | walk_init_root(const char *name, struct nameidata *nd) | 490 | walk_init_root(const char *name, struct nameidata *nd) |
| 491 | { | 491 | { |
| 492 | read_lock(¤t->fs->lock); | 492 | read_lock(¤t->fs->lock); |
| @@ -504,7 +504,7 @@ walk_init_root(const char *name, struct nameidata *nd) | |||
| 504 | return 1; | 504 | return 1; |
| 505 | } | 505 | } |
| 506 | 506 | ||
| 507 | static inline int __vfs_follow_link(struct nameidata *nd, const char *link) | 507 | static __always_inline int __vfs_follow_link(struct nameidata *nd, const char *link) |
| 508 | { | 508 | { |
| 509 | int res = 0; | 509 | int res = 0; |
| 510 | char *name; | 510 | char *name; |
| @@ -544,7 +544,7 @@ struct path { | |||
| 544 | struct dentry *dentry; | 544 | struct dentry *dentry; |
| 545 | }; | 545 | }; |
| 546 | 546 | ||
| 547 | static inline int __do_follow_link(struct path *path, struct nameidata *nd) | 547 | static __always_inline int __do_follow_link(struct path *path, struct nameidata *nd) |
| 548 | { | 548 | { |
| 549 | int error; | 549 | int error; |
| 550 | void *cookie; | 550 | void *cookie; |
| @@ -690,7 +690,7 @@ int follow_down(struct vfsmount **mnt, struct dentry **dentry) | |||
| 690 | return 0; | 690 | return 0; |
| 691 | } | 691 | } |
| 692 | 692 | ||
| 693 | static inline void follow_dotdot(struct nameidata *nd) | 693 | static __always_inline void follow_dotdot(struct nameidata *nd) |
| 694 | { | 694 | { |
| 695 | while(1) { | 695 | while(1) { |
| 696 | struct vfsmount *parent; | 696 | struct vfsmount *parent; |
| @@ -1294,7 +1294,7 @@ static inline int check_sticky(struct inode *dir, struct inode *inode) | |||
| 1294 | * 10. We don't allow removal of NFS sillyrenamed files; it's handled by | 1294 | * 10. We don't allow removal of NFS sillyrenamed files; it's handled by |
| 1295 | * nfs_async_unlink(). | 1295 | * nfs_async_unlink(). |
| 1296 | */ | 1296 | */ |
| 1297 | static inline int may_delete(struct inode *dir,struct dentry *victim,int isdir) | 1297 | static int may_delete(struct inode *dir,struct dentry *victim,int isdir) |
| 1298 | { | 1298 | { |
| 1299 | int error; | 1299 | int error; |
| 1300 | 1300 | ||
| @@ -2315,7 +2315,7 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
| 2315 | return error; | 2315 | return error; |
| 2316 | } | 2316 | } |
| 2317 | 2317 | ||
| 2318 | static inline int do_rename(const char * oldname, const char * newname) | 2318 | static int do_rename(const char * oldname, const char * newname) |
| 2319 | { | 2319 | { |
| 2320 | int error = 0; | 2320 | int error = 0; |
| 2321 | struct dentry * old_dir, * new_dir; | 2321 | struct dentry * old_dir, * new_dir; |
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c index 8c8839203cd5..d277a58bd128 100644 --- a/fs/ncpfs/inode.c +++ b/fs/ncpfs/inode.c | |||
| @@ -716,10 +716,8 @@ static void ncp_put_super(struct super_block *sb) | |||
| 716 | fput(server->ncp_filp); | 716 | fput(server->ncp_filp); |
| 717 | kill_proc(server->m.wdog_pid, SIGTERM, 1); | 717 | kill_proc(server->m.wdog_pid, SIGTERM, 1); |
| 718 | 718 | ||
| 719 | if (server->priv.data) | 719 | kfree(server->priv.data); |
| 720 | ncp_kfree_s(server->priv.data, server->priv.len); | 720 | kfree(server->auth.object_name); |
| 721 | if (server->auth.object_name) | ||
| 722 | ncp_kfree_s(server->auth.object_name, server->auth.object_name_len); | ||
| 723 | vfree(server->packet); | 721 | vfree(server->packet); |
| 724 | sb->s_fs_info = NULL; | 722 | sb->s_fs_info = NULL; |
| 725 | kfree(server); | 723 | kfree(server); |
| @@ -958,11 +956,6 @@ out: | |||
| 958 | return result; | 956 | return result; |
| 959 | } | 957 | } |
| 960 | 958 | ||
| 961 | #ifdef DEBUG_NCP_MALLOC | ||
| 962 | int ncp_malloced; | ||
| 963 | int ncp_current_malloced; | ||
| 964 | #endif | ||
| 965 | |||
| 966 | static struct super_block *ncp_get_sb(struct file_system_type *fs_type, | 959 | static struct super_block *ncp_get_sb(struct file_system_type *fs_type, |
| 967 | int flags, const char *dev_name, void *data) | 960 | int flags, const char *dev_name, void *data) |
| 968 | { | 961 | { |
| @@ -981,10 +974,6 @@ static int __init init_ncp_fs(void) | |||
| 981 | int err; | 974 | int err; |
| 982 | DPRINTK("ncpfs: init_module called\n"); | 975 | DPRINTK("ncpfs: init_module called\n"); |
| 983 | 976 | ||
| 984 | #ifdef DEBUG_NCP_MALLOC | ||
| 985 | ncp_malloced = 0; | ||
| 986 | ncp_current_malloced = 0; | ||
| 987 | #endif | ||
| 988 | err = init_inodecache(); | 977 | err = init_inodecache(); |
| 989 | if (err) | 978 | if (err) |
| 990 | goto out1; | 979 | goto out1; |
| @@ -1003,10 +992,6 @@ static void __exit exit_ncp_fs(void) | |||
| 1003 | DPRINTK("ncpfs: cleanup_module called\n"); | 992 | DPRINTK("ncpfs: cleanup_module called\n"); |
| 1004 | unregister_filesystem(&ncp_fs_type); | 993 | unregister_filesystem(&ncp_fs_type); |
| 1005 | destroy_inodecache(); | 994 | destroy_inodecache(); |
| 1006 | #ifdef DEBUG_NCP_MALLOC | ||
| 1007 | PRINTK("ncp_malloced: %d\n", ncp_malloced); | ||
| 1008 | PRINTK("ncp_current_malloced: %d\n", ncp_current_malloced); | ||
| 1009 | #endif | ||
| 1010 | } | 995 | } |
| 1011 | 996 | ||
| 1012 | module_init(init_ncp_fs) | 997 | module_init(init_ncp_fs) |
diff --git a/fs/ncpfs/ioctl.c b/fs/ncpfs/ioctl.c index d6e0c089e1b1..eb3813ad136f 100644 --- a/fs/ncpfs/ioctl.c +++ b/fs/ncpfs/ioctl.c | |||
| @@ -518,10 +518,11 @@ outrel: | |||
| 518 | if (user.object_name_len > NCP_OBJECT_NAME_MAX_LEN) | 518 | if (user.object_name_len > NCP_OBJECT_NAME_MAX_LEN) |
| 519 | return -ENOMEM; | 519 | return -ENOMEM; |
| 520 | if (user.object_name_len) { | 520 | if (user.object_name_len) { |
| 521 | newname = ncp_kmalloc(user.object_name_len, GFP_USER); | 521 | newname = kmalloc(user.object_name_len, GFP_USER); |
| 522 | if (!newname) return -ENOMEM; | 522 | if (!newname) |
| 523 | return -ENOMEM; | ||
| 523 | if (copy_from_user(newname, user.object_name, user.object_name_len)) { | 524 | if (copy_from_user(newname, user.object_name, user.object_name_len)) { |
| 524 | ncp_kfree_s(newname, user.object_name_len); | 525 | kfree(newname); |
| 525 | return -EFAULT; | 526 | return -EFAULT; |
| 526 | } | 527 | } |
| 527 | } else { | 528 | } else { |
| @@ -540,8 +541,8 @@ outrel: | |||
| 540 | server->priv.len = 0; | 541 | server->priv.len = 0; |
| 541 | server->priv.data = NULL; | 542 | server->priv.data = NULL; |
| 542 | /* leave critical section */ | 543 | /* leave critical section */ |
| 543 | if (oldprivate) ncp_kfree_s(oldprivate, oldprivatelen); | 544 | kfree(oldprivate); |
| 544 | if (oldname) ncp_kfree_s(oldname, oldnamelen); | 545 | kfree(oldname); |
| 545 | return 0; | 546 | return 0; |
| 546 | } | 547 | } |
| 547 | case NCP_IOC_GETPRIVATEDATA: | 548 | case NCP_IOC_GETPRIVATEDATA: |
| @@ -581,10 +582,11 @@ outrel: | |||
| 581 | if (user.len > NCP_PRIVATE_DATA_MAX_LEN) | 582 | if (user.len > NCP_PRIVATE_DATA_MAX_LEN) |
| 582 | return -ENOMEM; | 583 | return -ENOMEM; |
| 583 | if (user.len) { | 584 | if (user.len) { |
| 584 | new = ncp_kmalloc(user.len, GFP_USER); | 585 | new = kmalloc(user.len, GFP_USER); |
| 585 | if (!new) return -ENOMEM; | 586 | if (!new) |
| 587 | return -ENOMEM; | ||
| 586 | if (copy_from_user(new, user.data, user.len)) { | 588 | if (copy_from_user(new, user.data, user.len)) { |
| 587 | ncp_kfree_s(new, user.len); | 589 | kfree(new); |
| 588 | return -EFAULT; | 590 | return -EFAULT; |
| 589 | } | 591 | } |
| 590 | } else { | 592 | } else { |
| @@ -596,7 +598,7 @@ outrel: | |||
| 596 | server->priv.len = user.len; | 598 | server->priv.len = user.len; |
| 597 | server->priv.data = new; | 599 | server->priv.data = new; |
| 598 | /* leave critical section */ | 600 | /* leave critical section */ |
| 599 | if (old) ncp_kfree_s(old, oldlen); | 601 | kfree(old); |
| 600 | return 0; | 602 | return 0; |
| 601 | } | 603 | } |
| 602 | 604 | ||
diff --git a/fs/nfsd/nfsxdr.c b/fs/nfsd/nfsxdr.c index aa7bb41b293d..e3a0797dd56b 100644 --- a/fs/nfsd/nfsxdr.c +++ b/fs/nfsd/nfsxdr.c | |||
| @@ -37,7 +37,7 @@ static u32 nfs_ftypes[] = { | |||
| 37 | /* | 37 | /* |
| 38 | * XDR functions for basic NFS types | 38 | * XDR functions for basic NFS types |
| 39 | */ | 39 | */ |
| 40 | static inline u32 * | 40 | static u32 * |
| 41 | decode_fh(u32 *p, struct svc_fh *fhp) | 41 | decode_fh(u32 *p, struct svc_fh *fhp) |
| 42 | { | 42 | { |
| 43 | fh_init(fhp, NFS_FHSIZE); | 43 | fh_init(fhp, NFS_FHSIZE); |
| @@ -151,7 +151,7 @@ decode_sattr(u32 *p, struct iattr *iap) | |||
| 151 | return p; | 151 | return p; |
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | static inline u32 * | 154 | static u32 * |
| 155 | encode_fattr(struct svc_rqst *rqstp, u32 *p, struct svc_fh *fhp, | 155 | encode_fattr(struct svc_rqst *rqstp, u32 *p, struct svc_fh *fhp, |
| 156 | struct kstat *stat) | 156 | struct kstat *stat) |
| 157 | { | 157 | { |
| @@ -50,7 +50,7 @@ void pipe_wait(struct inode * inode) | |||
| 50 | mutex_lock(PIPE_MUTEX(*inode)); | 50 | mutex_lock(PIPE_MUTEX(*inode)); |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | static inline int | 53 | static int |
| 54 | pipe_iov_copy_from_user(void *to, struct iovec *iov, unsigned long len) | 54 | pipe_iov_copy_from_user(void *to, struct iovec *iov, unsigned long len) |
| 55 | { | 55 | { |
| 56 | unsigned long copy; | 56 | unsigned long copy; |
| @@ -70,7 +70,7 @@ pipe_iov_copy_from_user(void *to, struct iovec *iov, unsigned long len) | |||
| 70 | return 0; | 70 | return 0; |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | static inline int | 73 | static int |
| 74 | pipe_iov_copy_to_user(struct iovec *iov, const void *from, unsigned long len) | 74 | pipe_iov_copy_to_user(struct iovec *iov, const void *from, unsigned long len) |
| 75 | { | 75 | { |
| 76 | unsigned long copy; | 76 | unsigned long copy; |
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c index 63bf6c00fa0c..8f8014285a34 100644 --- a/fs/proc/proc_misc.c +++ b/fs/proc/proc_misc.c | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/time.h> | 20 | #include <linux/time.h> |
| 21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
| 22 | #include <linux/kernel_stat.h> | 22 | #include <linux/kernel_stat.h> |
| 23 | #include <linux/fs.h> | ||
| 23 | #include <linux/tty.h> | 24 | #include <linux/tty.h> |
| 24 | #include <linux/string.h> | 25 | #include <linux/string.h> |
| 25 | #include <linux/mman.h> | 26 | #include <linux/mman.h> |
| @@ -62,7 +63,6 @@ | |||
| 62 | */ | 63 | */ |
| 63 | extern int get_hardware_list(char *); | 64 | extern int get_hardware_list(char *); |
| 64 | extern int get_stram_list(char *); | 65 | extern int get_stram_list(char *); |
| 65 | extern int get_chrdev_list(char *); | ||
| 66 | extern int get_filesystem_list(char *); | 66 | extern int get_filesystem_list(char *); |
| 67 | extern int get_exec_domain_list(char *); | 67 | extern int get_exec_domain_list(char *); |
| 68 | extern int get_dma_list(char *); | 68 | extern int get_dma_list(char *); |
| @@ -248,6 +248,154 @@ static int cpuinfo_open(struct inode *inode, struct file *file) | |||
| 248 | { | 248 | { |
| 249 | return seq_open(file, &cpuinfo_op); | 249 | return seq_open(file, &cpuinfo_op); |
| 250 | } | 250 | } |
| 251 | |||
| 252 | enum devinfo_states { | ||
| 253 | CHR_HDR, | ||
| 254 | CHR_LIST, | ||
| 255 | BLK_HDR, | ||
| 256 | BLK_LIST, | ||
| 257 | DEVINFO_DONE | ||
| 258 | }; | ||
| 259 | |||
| 260 | struct devinfo_state { | ||
| 261 | void *chrdev; | ||
| 262 | void *blkdev; | ||
| 263 | unsigned int num_records; | ||
| 264 | unsigned int cur_record; | ||
| 265 | enum devinfo_states state; | ||
| 266 | }; | ||
| 267 | |||
| 268 | static void *devinfo_start(struct seq_file *f, loff_t *pos) | ||
| 269 | { | ||
| 270 | struct devinfo_state *info = f->private; | ||
| 271 | |||
| 272 | if (*pos) { | ||
| 273 | if ((info) && (*pos <= info->num_records)) | ||
| 274 | return info; | ||
| 275 | return NULL; | ||
| 276 | } | ||
| 277 | info = kmalloc(sizeof(*info), GFP_KERNEL); | ||
| 278 | f->private = info; | ||
| 279 | info->chrdev = acquire_chrdev_list(); | ||
| 280 | info->blkdev = acquire_blkdev_list(); | ||
| 281 | info->state = CHR_HDR; | ||
| 282 | info->num_records = count_chrdev_list(); | ||
| 283 | info->num_records += count_blkdev_list(); | ||
| 284 | info->num_records += 2; /* Character and Block headers */ | ||
| 285 | *pos = 1; | ||
| 286 | info->cur_record = *pos; | ||
| 287 | return info; | ||
| 288 | } | ||
| 289 | |||
| 290 | static void *devinfo_next(struct seq_file *f, void *v, loff_t *pos) | ||
| 291 | { | ||
| 292 | int idummy; | ||
| 293 | char *ndummy; | ||
| 294 | struct devinfo_state *info = f->private; | ||
| 295 | |||
| 296 | switch (info->state) { | ||
| 297 | case CHR_HDR: | ||
| 298 | info->state = CHR_LIST; | ||
| 299 | (*pos)++; | ||
| 300 | /*fallthrough*/ | ||
| 301 | case CHR_LIST: | ||
| 302 | if (get_chrdev_info(info->chrdev,&idummy,&ndummy)) { | ||
| 303 | /* | ||
| 304 | * The character dev list is complete | ||
| 305 | */ | ||
| 306 | info->state = BLK_HDR; | ||
| 307 | } else { | ||
| 308 | info->chrdev = get_next_chrdev(info->chrdev); | ||
| 309 | } | ||
| 310 | (*pos)++; | ||
| 311 | break; | ||
| 312 | case BLK_HDR: | ||
| 313 | info->state = BLK_LIST; | ||
| 314 | (*pos)++; | ||
| 315 | break; | ||
| 316 | case BLK_LIST: | ||
| 317 | if (get_blkdev_info(info->blkdev,&idummy,&ndummy)) { | ||
| 318 | /* | ||
| 319 | * The block dev list is complete | ||
| 320 | */ | ||
| 321 | info->state = DEVINFO_DONE; | ||
| 322 | } else { | ||
| 323 | info->blkdev = get_next_blkdev(info->blkdev); | ||
| 324 | } | ||
| 325 | (*pos)++; | ||
| 326 | break; | ||
| 327 | case DEVINFO_DONE: | ||
| 328 | (*pos)++; | ||
| 329 | info->cur_record = *pos; | ||
| 330 | info = NULL; | ||
| 331 | break; | ||
| 332 | default: | ||
| 333 | break; | ||
| 334 | } | ||
| 335 | if (info) | ||
| 336 | info->cur_record = *pos; | ||
| 337 | return info; | ||
| 338 | } | ||
| 339 | |||
| 340 | static void devinfo_stop(struct seq_file *f, void *v) | ||
| 341 | { | ||
| 342 | struct devinfo_state *info = f->private; | ||
| 343 | |||
| 344 | if (info) { | ||
| 345 | release_chrdev_list(info->chrdev); | ||
| 346 | release_blkdev_list(info->blkdev); | ||
| 347 | f->private = NULL; | ||
| 348 | kfree(info); | ||
| 349 | } | ||
| 350 | } | ||
| 351 | |||
| 352 | static int devinfo_show(struct seq_file *f, void *arg) | ||
| 353 | { | ||
| 354 | int major; | ||
| 355 | char *name; | ||
| 356 | struct devinfo_state *info = f->private; | ||
| 357 | |||
| 358 | switch(info->state) { | ||
| 359 | case CHR_HDR: | ||
| 360 | seq_printf(f,"Character devices:\n"); | ||
| 361 | /* fallthrough */ | ||
| 362 | case CHR_LIST: | ||
| 363 | if (!get_chrdev_info(info->chrdev,&major,&name)) | ||
| 364 | seq_printf(f,"%3d %s\n",major,name); | ||
| 365 | break; | ||
| 366 | case BLK_HDR: | ||
| 367 | seq_printf(f,"\nBlock devices:\n"); | ||
| 368 | /* fallthrough */ | ||
| 369 | case BLK_LIST: | ||
| 370 | if (!get_blkdev_info(info->blkdev,&major,&name)) | ||
| 371 | seq_printf(f,"%3d %s\n",major,name); | ||
| 372 | break; | ||
| 373 | default: | ||
| 374 | break; | ||
| 375 | } | ||
| 376 | |||
| 377 | return 0; | ||
| 378 | } | ||
| 379 | |||
| 380 | static struct seq_operations devinfo_op = { | ||
| 381 | .start = devinfo_start, | ||
| 382 | .next = devinfo_next, | ||
| 383 | .stop = devinfo_stop, | ||
| 384 | .show = devinfo_show, | ||
| 385 | }; | ||
| 386 | |||
| 387 | static int devinfo_open(struct inode *inode, struct file *file) | ||
| 388 | { | ||
| 389 | return seq_open(file, &devinfo_op); | ||
| 390 | } | ||
| 391 | |||
| 392 | static struct file_operations proc_devinfo_operations = { | ||
| 393 | .open = devinfo_open, | ||
| 394 | .read = seq_read, | ||
| 395 | .llseek = seq_lseek, | ||
| 396 | .release = seq_release, | ||
| 397 | }; | ||
| 398 | |||
| 251 | static struct file_operations proc_cpuinfo_operations = { | 399 | static struct file_operations proc_cpuinfo_operations = { |
| 252 | .open = cpuinfo_open, | 400 | .open = cpuinfo_open, |
| 253 | .read = seq_read, | 401 | .read = seq_read, |
| @@ -450,14 +598,6 @@ static struct file_operations proc_stat_operations = { | |||
| 450 | .release = single_release, | 598 | .release = single_release, |
| 451 | }; | 599 | }; |
| 452 | 600 | ||
| 453 | static int devices_read_proc(char *page, char **start, off_t off, | ||
| 454 | int count, int *eof, void *data) | ||
| 455 | { | ||
| 456 | int len = get_chrdev_list(page); | ||
| 457 | len += get_blkdev_list(page+len, len); | ||
| 458 | return proc_calc_metrics(page, start, off, count, eof, len); | ||
| 459 | } | ||
| 460 | |||
| 461 | /* | 601 | /* |
| 462 | * /proc/interrupts | 602 | * /proc/interrupts |
| 463 | */ | 603 | */ |
| @@ -582,7 +722,6 @@ void __init proc_misc_init(void) | |||
| 582 | #ifdef CONFIG_STRAM_PROC | 722 | #ifdef CONFIG_STRAM_PROC |
| 583 | {"stram", stram_read_proc}, | 723 | {"stram", stram_read_proc}, |
| 584 | #endif | 724 | #endif |
| 585 | {"devices", devices_read_proc}, | ||
| 586 | {"filesystems", filesystems_read_proc}, | 725 | {"filesystems", filesystems_read_proc}, |
| 587 | {"cmdline", cmdline_read_proc}, | 726 | {"cmdline", cmdline_read_proc}, |
| 588 | {"locks", locks_read_proc}, | 727 | {"locks", locks_read_proc}, |
| @@ -598,6 +737,7 @@ void __init proc_misc_init(void) | |||
| 598 | entry = create_proc_entry("kmsg", S_IRUSR, &proc_root); | 737 | entry = create_proc_entry("kmsg", S_IRUSR, &proc_root); |
| 599 | if (entry) | 738 | if (entry) |
| 600 | entry->proc_fops = &proc_kmsg_operations; | 739 | entry->proc_fops = &proc_kmsg_operations; |
| 740 | create_seq_entry("devices", 0, &proc_devinfo_operations); | ||
| 601 | create_seq_entry("cpuinfo", 0, &proc_cpuinfo_operations); | 741 | create_seq_entry("cpuinfo", 0, &proc_cpuinfo_operations); |
| 602 | create_seq_entry("partitions", 0, &proc_partitions_operations); | 742 | create_seq_entry("partitions", 0, &proc_partitions_operations); |
| 603 | create_seq_entry("stat", 0, &proc_stat_operations); | 743 | create_seq_entry("stat", 0, &proc_stat_operations); |
diff --git a/fs/quota_v2.c b/fs/quota_v2.c index 7afcbb1b9376..a4ef91bb4f3b 100644 --- a/fs/quota_v2.c +++ b/fs/quota_v2.c | |||
| @@ -35,7 +35,8 @@ static int v2_check_quota_file(struct super_block *sb, int type) | |||
| 35 | 35 | ||
| 36 | size = sb->s_op->quota_read(sb, type, (char *)&dqhead, sizeof(struct v2_disk_dqheader), 0); | 36 | size = sb->s_op->quota_read(sb, type, (char *)&dqhead, sizeof(struct v2_disk_dqheader), 0); |
| 37 | if (size != sizeof(struct v2_disk_dqheader)) { | 37 | if (size != sizeof(struct v2_disk_dqheader)) { |
| 38 | printk("failed read\n"); | 38 | printk("quota_v2: failed read expected=%d got=%d\n", |
| 39 | sizeof(struct v2_disk_dqheader), size); | ||
| 39 | return 0; | 40 | return 0; |
| 40 | } | 41 | } |
| 41 | if (le32_to_cpu(dqhead.dqh_magic) != quota_magics[type] || | 42 | if (le32_to_cpu(dqhead.dqh_magic) != quota_magics[type] || |
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c index 3549067c42d9..8f8d8d01107c 100644 --- a/fs/reiserfs/namei.c +++ b/fs/reiserfs/namei.c | |||
| @@ -375,11 +375,7 @@ static struct dentry *reiserfs_lookup(struct inode *dir, struct dentry *dentry, | |||
| 375 | return ERR_PTR(-EIO); | 375 | return ERR_PTR(-EIO); |
| 376 | } | 376 | } |
| 377 | 377 | ||
| 378 | if (inode) | 378 | return d_splice_alias(inode, dentry); |
| 379 | return d_splice_alias(inode, dentry); | ||
| 380 | |||
| 381 | d_add(dentry, inode); | ||
| 382 | return NULL; | ||
| 383 | } | 379 | } |
| 384 | 380 | ||
| 385 | /* | 381 | /* |
diff --git a/fs/smbfs/Makefile b/fs/smbfs/Makefile index 93246b7dd6fb..6673ee82cb4c 100644 --- a/fs/smbfs/Makefile +++ b/fs/smbfs/Makefile | |||
| @@ -13,7 +13,6 @@ smbfs-objs := proc.o dir.o cache.o sock.o inode.o file.o ioctl.o getopt.o \ | |||
| 13 | EXTRA_CFLAGS += -DSMBFS_PARANOIA | 13 | EXTRA_CFLAGS += -DSMBFS_PARANOIA |
| 14 | #EXTRA_CFLAGS += -DSMBFS_DEBUG | 14 | #EXTRA_CFLAGS += -DSMBFS_DEBUG |
| 15 | #EXTRA_CFLAGS += -DSMBFS_DEBUG_VERBOSE | 15 | #EXTRA_CFLAGS += -DSMBFS_DEBUG_VERBOSE |
| 16 | #EXTRA_CFLAGS += -DDEBUG_SMB_MALLOC | ||
| 17 | #EXTRA_CFLAGS += -DDEBUG_SMB_TIMESTAMP | 16 | #EXTRA_CFLAGS += -DDEBUG_SMB_TIMESTAMP |
| 18 | #EXTRA_CFLAGS += -Werror | 17 | #EXTRA_CFLAGS += -Werror |
| 19 | 18 | ||
diff --git a/fs/smbfs/inode.c b/fs/smbfs/inode.c index 6ec88bf59b2d..02e3e82d465c 100644 --- a/fs/smbfs/inode.c +++ b/fs/smbfs/inode.c | |||
| @@ -487,11 +487,11 @@ smb_put_super(struct super_block *sb) | |||
| 487 | if (server->conn_pid) | 487 | if (server->conn_pid) |
| 488 | kill_proc(server->conn_pid, SIGTERM, 1); | 488 | kill_proc(server->conn_pid, SIGTERM, 1); |
| 489 | 489 | ||
| 490 | smb_kfree(server->ops); | 490 | kfree(server->ops); |
| 491 | smb_unload_nls(server); | 491 | smb_unload_nls(server); |
| 492 | sb->s_fs_info = NULL; | 492 | sb->s_fs_info = NULL; |
| 493 | smb_unlock_server(server); | 493 | smb_unlock_server(server); |
| 494 | smb_kfree(server); | 494 | kfree(server); |
| 495 | } | 495 | } |
| 496 | 496 | ||
| 497 | static int smb_fill_super(struct super_block *sb, void *raw_data, int silent) | 497 | static int smb_fill_super(struct super_block *sb, void *raw_data, int silent) |
| @@ -519,11 +519,10 @@ static int smb_fill_super(struct super_block *sb, void *raw_data, int silent) | |||
| 519 | sb->s_op = &smb_sops; | 519 | sb->s_op = &smb_sops; |
| 520 | sb->s_time_gran = 100; | 520 | sb->s_time_gran = 100; |
| 521 | 521 | ||
| 522 | server = smb_kmalloc(sizeof(struct smb_sb_info), GFP_KERNEL); | 522 | server = kzalloc(sizeof(struct smb_sb_info), GFP_KERNEL); |
| 523 | if (!server) | 523 | if (!server) |
| 524 | goto out_no_server; | 524 | goto out_no_server; |
| 525 | sb->s_fs_info = server; | 525 | sb->s_fs_info = server; |
| 526 | memset(server, 0, sizeof(struct smb_sb_info)); | ||
| 527 | 526 | ||
| 528 | server->super_block = sb; | 527 | server->super_block = sb; |
| 529 | server->mnt = NULL; | 528 | server->mnt = NULL; |
| @@ -542,8 +541,8 @@ static int smb_fill_super(struct super_block *sb, void *raw_data, int silent) | |||
| 542 | /* FIXME: move these to the smb_sb_info struct */ | 541 | /* FIXME: move these to the smb_sb_info struct */ |
| 543 | VERBOSE("alloc chunk = %d\n", sizeof(struct smb_ops) + | 542 | VERBOSE("alloc chunk = %d\n", sizeof(struct smb_ops) + |
| 544 | sizeof(struct smb_mount_data_kernel)); | 543 | sizeof(struct smb_mount_data_kernel)); |
| 545 | mem = smb_kmalloc(sizeof(struct smb_ops) + | 544 | mem = kmalloc(sizeof(struct smb_ops) + |
| 546 | sizeof(struct smb_mount_data_kernel), GFP_KERNEL); | 545 | sizeof(struct smb_mount_data_kernel), GFP_KERNEL); |
| 547 | if (!mem) | 546 | if (!mem) |
| 548 | goto out_no_mem; | 547 | goto out_no_mem; |
| 549 | 548 | ||
| @@ -621,12 +620,12 @@ out_no_root: | |||
| 621 | out_no_smbiod: | 620 | out_no_smbiod: |
| 622 | smb_unload_nls(server); | 621 | smb_unload_nls(server); |
| 623 | out_bad_option: | 622 | out_bad_option: |
| 624 | smb_kfree(mem); | 623 | kfree(mem); |
| 625 | out_no_mem: | 624 | out_no_mem: |
| 626 | if (!server->mnt) | 625 | if (!server->mnt) |
| 627 | printk(KERN_ERR "smb_fill_super: allocation failure\n"); | 626 | printk(KERN_ERR "smb_fill_super: allocation failure\n"); |
| 628 | sb->s_fs_info = NULL; | 627 | sb->s_fs_info = NULL; |
| 629 | smb_kfree(server); | 628 | kfree(server); |
| 630 | goto out_fail; | 629 | goto out_fail; |
| 631 | out_wrong_data: | 630 | out_wrong_data: |
| 632 | printk(KERN_ERR "smbfs: mount_data version %d is not supported\n", ver); | 631 | printk(KERN_ERR "smbfs: mount_data version %d is not supported\n", ver); |
| @@ -782,12 +781,6 @@ out: | |||
| 782 | return error; | 781 | return error; |
| 783 | } | 782 | } |
| 784 | 783 | ||
| 785 | #ifdef DEBUG_SMB_MALLOC | ||
| 786 | int smb_malloced; | ||
| 787 | int smb_current_kmalloced; | ||
| 788 | int smb_current_vmalloced; | ||
| 789 | #endif | ||
| 790 | |||
| 791 | static struct super_block *smb_get_sb(struct file_system_type *fs_type, | 784 | static struct super_block *smb_get_sb(struct file_system_type *fs_type, |
| 792 | int flags, const char *dev_name, void *data) | 785 | int flags, const char *dev_name, void *data) |
| 793 | { | 786 | { |
| @@ -807,12 +800,6 @@ static int __init init_smb_fs(void) | |||
| 807 | int err; | 800 | int err; |
| 808 | DEBUG1("registering ...\n"); | 801 | DEBUG1("registering ...\n"); |
| 809 | 802 | ||
| 810 | #ifdef DEBUG_SMB_MALLOC | ||
| 811 | smb_malloced = 0; | ||
| 812 | smb_current_kmalloced = 0; | ||
| 813 | smb_current_vmalloced = 0; | ||
| 814 | #endif | ||
| 815 | |||
| 816 | err = init_inodecache(); | 803 | err = init_inodecache(); |
| 817 | if (err) | 804 | if (err) |
| 818 | goto out_inode; | 805 | goto out_inode; |
| @@ -837,11 +824,6 @@ static void __exit exit_smb_fs(void) | |||
| 837 | unregister_filesystem(&smb_fs_type); | 824 | unregister_filesystem(&smb_fs_type); |
| 838 | smb_destroy_request_cache(); | 825 | smb_destroy_request_cache(); |
| 839 | destroy_inodecache(); | 826 | destroy_inodecache(); |
| 840 | #ifdef DEBUG_SMB_MALLOC | ||
| 841 | printk(KERN_DEBUG "smb_malloced: %d\n", smb_malloced); | ||
| 842 | printk(KERN_DEBUG "smb_current_kmalloced: %d\n",smb_current_kmalloced); | ||
| 843 | printk(KERN_DEBUG "smb_current_vmalloced: %d\n",smb_current_vmalloced); | ||
| 844 | #endif | ||
| 845 | } | 827 | } |
| 846 | 828 | ||
| 847 | module_init(init_smb_fs) | 829 | module_init(init_smb_fs) |
diff --git a/fs/smbfs/request.c b/fs/smbfs/request.c index a0f296d9928a..c71c375863cc 100644 --- a/fs/smbfs/request.c +++ b/fs/smbfs/request.c | |||
| @@ -68,7 +68,7 @@ static struct smb_request *smb_do_alloc_request(struct smb_sb_info *server, | |||
| 68 | goto out; | 68 | goto out; |
| 69 | 69 | ||
| 70 | if (bufsize > 0) { | 70 | if (bufsize > 0) { |
| 71 | buf = smb_kmalloc(bufsize, GFP_NOFS); | 71 | buf = kmalloc(bufsize, GFP_NOFS); |
| 72 | if (!buf) { | 72 | if (!buf) { |
| 73 | kmem_cache_free(req_cachep, req); | 73 | kmem_cache_free(req_cachep, req); |
| 74 | return NULL; | 74 | return NULL; |
| @@ -124,9 +124,8 @@ static void smb_free_request(struct smb_request *req) | |||
| 124 | { | 124 | { |
| 125 | atomic_dec(&req->rq_server->nr_requests); | 125 | atomic_dec(&req->rq_server->nr_requests); |
| 126 | if (req->rq_buffer && !(req->rq_flags & SMB_REQ_STATIC)) | 126 | if (req->rq_buffer && !(req->rq_flags & SMB_REQ_STATIC)) |
| 127 | smb_kfree(req->rq_buffer); | 127 | kfree(req->rq_buffer); |
| 128 | if (req->rq_trans2buffer) | 128 | kfree(req->rq_trans2buffer); |
| 129 | smb_kfree(req->rq_trans2buffer); | ||
| 130 | kmem_cache_free(req_cachep, req); | 129 | kmem_cache_free(req_cachep, req); |
| 131 | } | 130 | } |
| 132 | 131 | ||
| @@ -183,8 +182,7 @@ static int smb_setup_request(struct smb_request *req) | |||
| 183 | req->rq_err = 0; | 182 | req->rq_err = 0; |
| 184 | req->rq_errno = 0; | 183 | req->rq_errno = 0; |
| 185 | req->rq_fragment = 0; | 184 | req->rq_fragment = 0; |
| 186 | if (req->rq_trans2buffer) | 185 | kfree(req->rq_trans2buffer); |
| 187 | smb_kfree(req->rq_trans2buffer); | ||
| 188 | 186 | ||
| 189 | return 0; | 187 | return 0; |
| 190 | } | 188 | } |
| @@ -647,10 +645,9 @@ static int smb_recv_trans2(struct smb_sb_info *server, struct smb_request *req) | |||
| 647 | goto out_too_long; | 645 | goto out_too_long; |
| 648 | 646 | ||
| 649 | req->rq_trans2bufsize = buf_len; | 647 | req->rq_trans2bufsize = buf_len; |
| 650 | req->rq_trans2buffer = smb_kmalloc(buf_len, GFP_NOFS); | 648 | req->rq_trans2buffer = kzalloc(buf_len, GFP_NOFS); |
| 651 | if (!req->rq_trans2buffer) | 649 | if (!req->rq_trans2buffer) |
| 652 | goto out_no_mem; | 650 | goto out_no_mem; |
| 653 | memset(req->rq_trans2buffer, 0, buf_len); | ||
| 654 | 651 | ||
| 655 | req->rq_parm = req->rq_trans2buffer; | 652 | req->rq_parm = req->rq_trans2buffer; |
| 656 | req->rq_data = req->rq_trans2buffer + parm_tot; | 653 | req->rq_data = req->rq_trans2buffer + parm_tot; |
diff --git a/fs/sysv/ChangeLog b/fs/sysv/ChangeLog index 18e3487debdb..f403f8b91b80 100644 --- a/fs/sysv/ChangeLog +++ b/fs/sysv/ChangeLog | |||
| @@ -54,7 +54,7 @@ Fri Jan 4 2002 Alexander Viro <viro@parcelfarce.linux.theplanet.co.uk> | |||
| 54 | (sysv_read_super): Likewise. | 54 | (sysv_read_super): Likewise. |
| 55 | (v7_read_super): Likewise. | 55 | (v7_read_super): Likewise. |
| 56 | 56 | ||
| 57 | Sun Dec 30 2001 Manfred Spraul <manfreds@colorfullife.com> | 57 | Sun Dec 30 2001 Manfred Spraul <manfred@colorfullife.com> |
| 58 | 58 | ||
| 59 | * dir.c (dir_commit_chunk): Do not set dir->i_version. | 59 | * dir.c (dir_commit_chunk): Do not set dir->i_version. |
| 60 | (sysv_readdir): Likewise. | 60 | (sysv_readdir): Likewise. |
diff --git a/fs/xfs/linux-2.6/mutex.h b/fs/xfs/linux-2.6/mutex.h index d3369b6ca168..2a88d56c4dc2 100644 --- a/fs/xfs/linux-2.6/mutex.h +++ b/fs/xfs/linux-2.6/mutex.h | |||
| @@ -18,18 +18,8 @@ | |||
| 18 | #ifndef __XFS_SUPPORT_MUTEX_H__ | 18 | #ifndef __XFS_SUPPORT_MUTEX_H__ |
| 19 | #define __XFS_SUPPORT_MUTEX_H__ | 19 | #define __XFS_SUPPORT_MUTEX_H__ |
| 20 | 20 | ||
| 21 | #include <linux/spinlock.h> | ||
| 22 | #include <linux/mutex.h> | 21 | #include <linux/mutex.h> |
| 23 | 22 | ||
| 24 | /* | 23 | typedef struct mutex mutex_t; |
| 25 | * Map the mutex'es from IRIX to Linux semaphores. | ||
| 26 | * | ||
| 27 | * Destroy just simply initializes to -99 which should block all other | ||
| 28 | * callers. | ||
| 29 | */ | ||
| 30 | #define MUTEX_DEFAULT 0x0 | ||
| 31 | |||
| 32 | typedef struct mutex mutex_t; | ||
| 33 | //#define mutex_destroy(lock) do{}while(0) | ||
| 34 | 24 | ||
| 35 | #endif /* __XFS_SUPPORT_MUTEX_H__ */ | 25 | #endif /* __XFS_SUPPORT_MUTEX_H__ */ |
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 4bd3d03b23ed..76c6df34d0db 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c | |||
| @@ -56,9 +56,6 @@ | |||
| 56 | #include <linux/namei.h> | 56 | #include <linux/namei.h> |
| 57 | #include <linux/security.h> | 57 | #include <linux/security.h> |
| 58 | 58 | ||
| 59 | #define IS_NOATIME(inode) ((inode->i_sb->s_flags & MS_NOATIME) || \ | ||
| 60 | (S_ISDIR(inode->i_mode) && inode->i_sb->s_flags & MS_NODIRATIME)) | ||
| 61 | |||
| 62 | /* | 59 | /* |
| 63 | * Get a XFS inode from a given vnode. | 60 | * Get a XFS inode from a given vnode. |
| 64 | */ | 61 | */ |
| @@ -474,11 +471,14 @@ linvfs_symlink( | |||
| 474 | 471 | ||
| 475 | error = 0; | 472 | error = 0; |
| 476 | VOP_SYMLINK(dvp, dentry, &va, (char *)symname, &cvp, NULL, error); | 473 | VOP_SYMLINK(dvp, dentry, &va, (char *)symname, &cvp, NULL, error); |
| 477 | if (!error && cvp) { | 474 | if (likely(!error && cvp)) { |
| 478 | ip = LINVFS_GET_IP(cvp); | 475 | error = linvfs_init_security(cvp, dir); |
| 479 | d_instantiate(dentry, ip); | 476 | if (likely(!error)) { |
| 480 | validate_fields(dir); | 477 | ip = LINVFS_GET_IP(cvp); |
| 481 | validate_fields(ip); /* size needs update */ | 478 | d_instantiate(dentry, ip); |
| 479 | validate_fields(dir); | ||
| 480 | validate_fields(ip); | ||
| 481 | } | ||
| 482 | } | 482 | } |
| 483 | return -error; | 483 | return -error; |
| 484 | } | 484 | } |
diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index 7dcdd0640c32..53a00fb217fa 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c | |||
| @@ -167,7 +167,7 @@ xfs_Gqm_init(void) | |||
| 167 | xqm->qm_dqfree_ratio = XFS_QM_DQFREE_RATIO; | 167 | xqm->qm_dqfree_ratio = XFS_QM_DQFREE_RATIO; |
| 168 | xqm->qm_nrefs = 0; | 168 | xqm->qm_nrefs = 0; |
| 169 | #ifdef DEBUG | 169 | #ifdef DEBUG |
| 170 | xfs_mutex_init(&qcheck_lock, MUTEX_DEFAULT, "qchk"); | 170 | mutex_init(&qcheck_lock); |
| 171 | #endif | 171 | #endif |
| 172 | return xqm; | 172 | return xqm; |
| 173 | } | 173 | } |
| @@ -497,7 +497,7 @@ xfs_qm_dqflush_all( | |||
| 497 | int error; | 497 | int error; |
| 498 | 498 | ||
| 499 | if (mp->m_quotainfo == NULL) | 499 | if (mp->m_quotainfo == NULL) |
| 500 | return (0); | 500 | return 0; |
| 501 | niters = 0; | 501 | niters = 0; |
| 502 | again: | 502 | again: |
| 503 | xfs_qm_mplist_lock(mp); | 503 | xfs_qm_mplist_lock(mp); |
| @@ -528,7 +528,7 @@ again: | |||
| 528 | error = xfs_qm_dqflush(dqp, flags); | 528 | error = xfs_qm_dqflush(dqp, flags); |
| 529 | xfs_dqunlock(dqp); | 529 | xfs_dqunlock(dqp); |
| 530 | if (error) | 530 | if (error) |
| 531 | return (error); | 531 | return error; |
| 532 | 532 | ||
| 533 | xfs_qm_mplist_lock(mp); | 533 | xfs_qm_mplist_lock(mp); |
| 534 | if (recl != XFS_QI_MPLRECLAIMS(mp)) { | 534 | if (recl != XFS_QI_MPLRECLAIMS(mp)) { |
| @@ -540,7 +540,7 @@ again: | |||
| 540 | 540 | ||
| 541 | xfs_qm_mplist_unlock(mp); | 541 | xfs_qm_mplist_unlock(mp); |
| 542 | /* return ! busy */ | 542 | /* return ! busy */ |
| 543 | return (0); | 543 | return 0; |
| 544 | } | 544 | } |
| 545 | /* | 545 | /* |
| 546 | * Release the group dquot pointers the user dquots may be | 546 | * Release the group dquot pointers the user dquots may be |
| @@ -599,7 +599,7 @@ xfs_qm_dqpurge_int( | |||
| 599 | int nmisses; | 599 | int nmisses; |
| 600 | 600 | ||
| 601 | if (mp->m_quotainfo == NULL) | 601 | if (mp->m_quotainfo == NULL) |
| 602 | return (0); | 602 | return 0; |
| 603 | 603 | ||
| 604 | dqtype = (flags & XFS_QMOPT_UQUOTA) ? XFS_DQ_USER : 0; | 604 | dqtype = (flags & XFS_QMOPT_UQUOTA) ? XFS_DQ_USER : 0; |
| 605 | dqtype |= (flags & XFS_QMOPT_PQUOTA) ? XFS_DQ_PROJ : 0; | 605 | dqtype |= (flags & XFS_QMOPT_PQUOTA) ? XFS_DQ_PROJ : 0; |
| @@ -796,7 +796,7 @@ xfs_qm_dqattach_one( | |||
| 796 | ASSERT(XFS_DQ_IS_LOCKED(dqp)); | 796 | ASSERT(XFS_DQ_IS_LOCKED(dqp)); |
| 797 | } | 797 | } |
| 798 | #endif | 798 | #endif |
| 799 | return (error); | 799 | return error; |
| 800 | } | 800 | } |
| 801 | 801 | ||
| 802 | 802 | ||
| @@ -897,7 +897,7 @@ xfs_qm_dqattach( | |||
| 897 | (! XFS_NOT_DQATTACHED(mp, ip)) || | 897 | (! XFS_NOT_DQATTACHED(mp, ip)) || |
| 898 | (ip->i_ino == mp->m_sb.sb_uquotino) || | 898 | (ip->i_ino == mp->m_sb.sb_uquotino) || |
| 899 | (ip->i_ino == mp->m_sb.sb_gquotino)) | 899 | (ip->i_ino == mp->m_sb.sb_gquotino)) |
| 900 | return (0); | 900 | return 0; |
| 901 | 901 | ||
| 902 | ASSERT((flags & XFS_QMOPT_ILOCKED) == 0 || | 902 | ASSERT((flags & XFS_QMOPT_ILOCKED) == 0 || |
| 903 | XFS_ISLOCKED_INODE_EXCL(ip)); | 903 | XFS_ISLOCKED_INODE_EXCL(ip)); |
| @@ -984,7 +984,7 @@ xfs_qm_dqattach( | |||
| 984 | else | 984 | else |
| 985 | ASSERT(XFS_ISLOCKED_INODE_EXCL(ip)); | 985 | ASSERT(XFS_ISLOCKED_INODE_EXCL(ip)); |
| 986 | #endif | 986 | #endif |
| 987 | return (error); | 987 | return error; |
| 988 | } | 988 | } |
| 989 | 989 | ||
| 990 | /* | 990 | /* |
| @@ -1049,7 +1049,7 @@ xfs_qm_sync( | |||
| 1049 | */ | 1049 | */ |
| 1050 | if (! XFS_IS_QUOTA_ON(mp)) { | 1050 | if (! XFS_IS_QUOTA_ON(mp)) { |
| 1051 | xfs_qm_mplist_unlock(mp); | 1051 | xfs_qm_mplist_unlock(mp); |
| 1052 | return (0); | 1052 | return 0; |
| 1053 | } | 1053 | } |
| 1054 | FOREACH_DQUOT_IN_MP(dqp, mp) { | 1054 | FOREACH_DQUOT_IN_MP(dqp, mp) { |
| 1055 | /* | 1055 | /* |
| @@ -1109,9 +1109,9 @@ xfs_qm_sync( | |||
| 1109 | error = xfs_qm_dqflush(dqp, flush_flags); | 1109 | error = xfs_qm_dqflush(dqp, flush_flags); |
| 1110 | xfs_dqunlock(dqp); | 1110 | xfs_dqunlock(dqp); |
| 1111 | if (error && XFS_FORCED_SHUTDOWN(mp)) | 1111 | if (error && XFS_FORCED_SHUTDOWN(mp)) |
| 1112 | return(0); /* Need to prevent umount failure */ | 1112 | return 0; /* Need to prevent umount failure */ |
| 1113 | else if (error) | 1113 | else if (error) |
| 1114 | return (error); | 1114 | return error; |
| 1115 | 1115 | ||
| 1116 | xfs_qm_mplist_lock(mp); | 1116 | xfs_qm_mplist_lock(mp); |
| 1117 | if (recl != XFS_QI_MPLRECLAIMS(mp)) { | 1117 | if (recl != XFS_QI_MPLRECLAIMS(mp)) { |
| @@ -1124,7 +1124,7 @@ xfs_qm_sync( | |||
| 1124 | } | 1124 | } |
| 1125 | 1125 | ||
| 1126 | xfs_qm_mplist_unlock(mp); | 1126 | xfs_qm_mplist_unlock(mp); |
| 1127 | return (0); | 1127 | return 0; |
| 1128 | } | 1128 | } |
| 1129 | 1129 | ||
| 1130 | 1130 | ||
| @@ -1146,7 +1146,7 @@ xfs_qm_init_quotainfo( | |||
| 1146 | * Tell XQM that we exist as soon as possible. | 1146 | * Tell XQM that we exist as soon as possible. |
| 1147 | */ | 1147 | */ |
| 1148 | if ((error = xfs_qm_hold_quotafs_ref(mp))) { | 1148 | if ((error = xfs_qm_hold_quotafs_ref(mp))) { |
| 1149 | return (error); | 1149 | return error; |
| 1150 | } | 1150 | } |
| 1151 | 1151 | ||
| 1152 | qinf = mp->m_quotainfo = kmem_zalloc(sizeof(xfs_quotainfo_t), KM_SLEEP); | 1152 | qinf = mp->m_quotainfo = kmem_zalloc(sizeof(xfs_quotainfo_t), KM_SLEEP); |
| @@ -1158,7 +1158,7 @@ xfs_qm_init_quotainfo( | |||
| 1158 | if ((error = xfs_qm_init_quotainos(mp))) { | 1158 | if ((error = xfs_qm_init_quotainos(mp))) { |
| 1159 | kmem_free(qinf, sizeof(xfs_quotainfo_t)); | 1159 | kmem_free(qinf, sizeof(xfs_quotainfo_t)); |
| 1160 | mp->m_quotainfo = NULL; | 1160 | mp->m_quotainfo = NULL; |
| 1161 | return (error); | 1161 | return error; |
| 1162 | } | 1162 | } |
| 1163 | 1163 | ||
| 1164 | spinlock_init(&qinf->qi_pinlock, "xfs_qinf_pin"); | 1164 | spinlock_init(&qinf->qi_pinlock, "xfs_qinf_pin"); |
| @@ -1232,7 +1232,7 @@ xfs_qm_init_quotainfo( | |||
| 1232 | qinf->qi_rtbwarnlimit = XFS_QM_RTBWARNLIMIT; | 1232 | qinf->qi_rtbwarnlimit = XFS_QM_RTBWARNLIMIT; |
| 1233 | } | 1233 | } |
| 1234 | 1234 | ||
| 1235 | return (0); | 1235 | return 0; |
| 1236 | } | 1236 | } |
| 1237 | 1237 | ||
| 1238 | 1238 | ||
| @@ -1332,7 +1332,7 @@ xfs_qm_dqget_noattach( | |||
| 1332 | */ | 1332 | */ |
| 1333 | ASSERT(error != ESRCH); | 1333 | ASSERT(error != ESRCH); |
| 1334 | ASSERT(error != ENOENT); | 1334 | ASSERT(error != ENOENT); |
| 1335 | return (error); | 1335 | return error; |
| 1336 | } | 1336 | } |
| 1337 | ASSERT(udqp); | 1337 | ASSERT(udqp); |
| 1338 | } | 1338 | } |
| @@ -1355,7 +1355,7 @@ xfs_qm_dqget_noattach( | |||
| 1355 | xfs_qm_dqrele(udqp); | 1355 | xfs_qm_dqrele(udqp); |
| 1356 | ASSERT(error != ESRCH); | 1356 | ASSERT(error != ESRCH); |
| 1357 | ASSERT(error != ENOENT); | 1357 | ASSERT(error != ENOENT); |
| 1358 | return (error); | 1358 | return error; |
| 1359 | } | 1359 | } |
| 1360 | ASSERT(gdqp); | 1360 | ASSERT(gdqp); |
| 1361 | 1361 | ||
| @@ -1376,7 +1376,7 @@ xfs_qm_dqget_noattach( | |||
| 1376 | if (udqp) ASSERT(XFS_DQ_IS_LOCKED(udqp)); | 1376 | if (udqp) ASSERT(XFS_DQ_IS_LOCKED(udqp)); |
| 1377 | if (gdqp) ASSERT(XFS_DQ_IS_LOCKED(gdqp)); | 1377 | if (gdqp) ASSERT(XFS_DQ_IS_LOCKED(gdqp)); |
| 1378 | #endif | 1378 | #endif |
| 1379 | return (0); | 1379 | return 0; |
| 1380 | } | 1380 | } |
| 1381 | 1381 | ||
| 1382 | /* | 1382 | /* |
| @@ -1404,7 +1404,7 @@ xfs_qm_qino_alloc( | |||
| 1404 | XFS_TRANS_PERM_LOG_RES, | 1404 | XFS_TRANS_PERM_LOG_RES, |
| 1405 | XFS_CREATE_LOG_COUNT))) { | 1405 | XFS_CREATE_LOG_COUNT))) { |
| 1406 | xfs_trans_cancel(tp, 0); | 1406 | xfs_trans_cancel(tp, 0); |
| 1407 | return (error); | 1407 | return error; |
| 1408 | } | 1408 | } |
| 1409 | memset(&zerocr, 0, sizeof(zerocr)); | 1409 | memset(&zerocr, 0, sizeof(zerocr)); |
| 1410 | memset(&zeroino, 0, sizeof(zeroino)); | 1410 | memset(&zeroino, 0, sizeof(zeroino)); |
| @@ -1413,7 +1413,7 @@ xfs_qm_qino_alloc( | |||
| 1413 | &zerocr, 0, 1, ip, &committed))) { | 1413 | &zerocr, 0, 1, ip, &committed))) { |
| 1414 | xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | | 1414 | xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | |
| 1415 | XFS_TRANS_ABORT); | 1415 | XFS_TRANS_ABORT); |
| 1416 | return (error); | 1416 | return error; |
| 1417 | } | 1417 | } |
| 1418 | 1418 | ||
| 1419 | /* | 1419 | /* |
| @@ -1461,9 +1461,9 @@ xfs_qm_qino_alloc( | |||
| 1461 | if ((error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES, | 1461 | if ((error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES, |
| 1462 | NULL))) { | 1462 | NULL))) { |
| 1463 | xfs_fs_cmn_err(CE_ALERT, mp, "XFS qino_alloc failed!"); | 1463 | xfs_fs_cmn_err(CE_ALERT, mp, "XFS qino_alloc failed!"); |
| 1464 | return (error); | 1464 | return error; |
| 1465 | } | 1465 | } |
| 1466 | return (0); | 1466 | return 0; |
| 1467 | } | 1467 | } |
| 1468 | 1468 | ||
| 1469 | 1469 | ||
| @@ -1508,7 +1508,7 @@ xfs_qm_reset_dqcounts( | |||
| 1508 | ddq = (xfs_disk_dquot_t *) ((xfs_dqblk_t *)ddq + 1); | 1508 | ddq = (xfs_disk_dquot_t *) ((xfs_dqblk_t *)ddq + 1); |
| 1509 | } | 1509 | } |
| 1510 | 1510 | ||
| 1511 | return (0); | 1511 | return 0; |
| 1512 | } | 1512 | } |
| 1513 | 1513 | ||
| 1514 | STATIC int | 1514 | STATIC int |
| @@ -1557,7 +1557,7 @@ xfs_qm_dqiter_bufs( | |||
| 1557 | bno++; | 1557 | bno++; |
| 1558 | firstid += XFS_QM_DQPERBLK(mp); | 1558 | firstid += XFS_QM_DQPERBLK(mp); |
| 1559 | } | 1559 | } |
| 1560 | return (error); | 1560 | return error; |
| 1561 | } | 1561 | } |
| 1562 | 1562 | ||
| 1563 | /* | 1563 | /* |
| @@ -1586,7 +1586,7 @@ xfs_qm_dqiterate( | |||
| 1586 | * happens only at mount time which is single threaded. | 1586 | * happens only at mount time which is single threaded. |
| 1587 | */ | 1587 | */ |
| 1588 | if (qip->i_d.di_nblocks == 0) | 1588 | if (qip->i_d.di_nblocks == 0) |
| 1589 | return (0); | 1589 | return 0; |
| 1590 | 1590 | ||
| 1591 | map = kmem_alloc(XFS_DQITER_MAP_SIZE * sizeof(*map), KM_SLEEP); | 1591 | map = kmem_alloc(XFS_DQITER_MAP_SIZE * sizeof(*map), KM_SLEEP); |
| 1592 | 1592 | ||
| @@ -1655,7 +1655,7 @@ xfs_qm_dqiterate( | |||
| 1655 | 1655 | ||
| 1656 | kmem_free(map, XFS_DQITER_MAP_SIZE * sizeof(*map)); | 1656 | kmem_free(map, XFS_DQITER_MAP_SIZE * sizeof(*map)); |
| 1657 | 1657 | ||
| 1658 | return (error); | 1658 | return error; |
| 1659 | } | 1659 | } |
| 1660 | 1660 | ||
| 1661 | /* | 1661 | /* |
| @@ -1715,7 +1715,7 @@ xfs_qm_get_rtblks( | |||
| 1715 | ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); | 1715 | ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); |
| 1716 | if (!(ifp->if_flags & XFS_IFEXTENTS)) { | 1716 | if (!(ifp->if_flags & XFS_IFEXTENTS)) { |
| 1717 | if ((error = xfs_iread_extents(NULL, ip, XFS_DATA_FORK))) | 1717 | if ((error = xfs_iread_extents(NULL, ip, XFS_DATA_FORK))) |
| 1718 | return (error); | 1718 | return error; |
| 1719 | } | 1719 | } |
| 1720 | rtblks = 0; | 1720 | rtblks = 0; |
| 1721 | nextents = ifp->if_bytes / sizeof(xfs_bmbt_rec_t); | 1721 | nextents = ifp->if_bytes / sizeof(xfs_bmbt_rec_t); |
| @@ -1723,7 +1723,7 @@ xfs_qm_get_rtblks( | |||
| 1723 | for (ep = base; ep < &base[nextents]; ep++) | 1723 | for (ep = base; ep < &base[nextents]; ep++) |
| 1724 | rtblks += xfs_bmbt_get_blockcount(ep); | 1724 | rtblks += xfs_bmbt_get_blockcount(ep); |
| 1725 | *O_rtblks = (xfs_qcnt_t)rtblks; | 1725 | *O_rtblks = (xfs_qcnt_t)rtblks; |
| 1726 | return (0); | 1726 | return 0; |
| 1727 | } | 1727 | } |
| 1728 | 1728 | ||
| 1729 | /* | 1729 | /* |
| @@ -1767,7 +1767,7 @@ xfs_qm_dqusage_adjust( | |||
| 1767 | */ | 1767 | */ |
| 1768 | if ((error = xfs_iget(mp, NULL, ino, 0, XFS_ILOCK_EXCL, &ip, bno))) { | 1768 | if ((error = xfs_iget(mp, NULL, ino, 0, XFS_ILOCK_EXCL, &ip, bno))) { |
| 1769 | *res = BULKSTAT_RV_NOTHING; | 1769 | *res = BULKSTAT_RV_NOTHING; |
| 1770 | return (error); | 1770 | return error; |
| 1771 | } | 1771 | } |
| 1772 | 1772 | ||
| 1773 | if (ip->i_d.di_mode == 0) { | 1773 | if (ip->i_d.di_mode == 0) { |
| @@ -1785,7 +1785,7 @@ xfs_qm_dqusage_adjust( | |||
| 1785 | if ((error = xfs_qm_dqget_noattach(ip, &udqp, &gdqp))) { | 1785 | if ((error = xfs_qm_dqget_noattach(ip, &udqp, &gdqp))) { |
| 1786 | xfs_iput(ip, XFS_ILOCK_EXCL); | 1786 | xfs_iput(ip, XFS_ILOCK_EXCL); |
| 1787 | *res = BULKSTAT_RV_GIVEUP; | 1787 | *res = BULKSTAT_RV_GIVEUP; |
| 1788 | return (error); | 1788 | return error; |
| 1789 | } | 1789 | } |
| 1790 | 1790 | ||
| 1791 | rtblks = 0; | 1791 | rtblks = 0; |
| @@ -1802,7 +1802,7 @@ xfs_qm_dqusage_adjust( | |||
| 1802 | if (gdqp) | 1802 | if (gdqp) |
| 1803 | xfs_qm_dqput(gdqp); | 1803 | xfs_qm_dqput(gdqp); |
| 1804 | *res = BULKSTAT_RV_GIVEUP; | 1804 | *res = BULKSTAT_RV_GIVEUP; |
| 1805 | return (error); | 1805 | return error; |
| 1806 | } | 1806 | } |
| 1807 | nblks = (xfs_qcnt_t)ip->i_d.di_nblocks - rtblks; | 1807 | nblks = (xfs_qcnt_t)ip->i_d.di_nblocks - rtblks; |
| 1808 | } | 1808 | } |
| @@ -1847,7 +1847,7 @@ xfs_qm_dqusage_adjust( | |||
| 1847 | * Goto next inode. | 1847 | * Goto next inode. |
| 1848 | */ | 1848 | */ |
| 1849 | *res = BULKSTAT_RV_DIDONE; | 1849 | *res = BULKSTAT_RV_DIDONE; |
| 1850 | return (0); | 1850 | return 0; |
| 1851 | } | 1851 | } |
| 1852 | 1852 | ||
| 1853 | /* | 1853 | /* |
| @@ -2041,7 +2041,7 @@ xfs_qm_init_quotainos( | |||
| 2041 | XFS_QI_UQIP(mp) = uip; | 2041 | XFS_QI_UQIP(mp) = uip; |
| 2042 | XFS_QI_GQIP(mp) = gip; | 2042 | XFS_QI_GQIP(mp) = gip; |
| 2043 | 2043 | ||
| 2044 | return (0); | 2044 | return 0; |
| 2045 | } | 2045 | } |
| 2046 | 2046 | ||
| 2047 | 2047 | ||
| @@ -2062,7 +2062,7 @@ xfs_qm_shake_freelist( | |||
| 2062 | int nflushes; | 2062 | int nflushes; |
| 2063 | 2063 | ||
| 2064 | if (howmany <= 0) | 2064 | if (howmany <= 0) |
| 2065 | return (0); | 2065 | return 0; |
| 2066 | 2066 | ||
| 2067 | nreclaimed = 0; | 2067 | nreclaimed = 0; |
| 2068 | restarts = 0; | 2068 | restarts = 0; |
| @@ -2088,7 +2088,7 @@ xfs_qm_shake_freelist( | |||
| 2088 | xfs_dqunlock(dqp); | 2088 | xfs_dqunlock(dqp); |
| 2089 | xfs_qm_freelist_unlock(xfs_Gqm); | 2089 | xfs_qm_freelist_unlock(xfs_Gqm); |
| 2090 | if (++restarts >= XFS_QM_RECLAIM_MAX_RESTARTS) | 2090 | if (++restarts >= XFS_QM_RECLAIM_MAX_RESTARTS) |
| 2091 | return (nreclaimed); | 2091 | return nreclaimed; |
| 2092 | XQM_STATS_INC(xqmstats.xs_qm_dqwants); | 2092 | XQM_STATS_INC(xqmstats.xs_qm_dqwants); |
| 2093 | goto tryagain; | 2093 | goto tryagain; |
| 2094 | } | 2094 | } |
| @@ -2163,7 +2163,7 @@ xfs_qm_shake_freelist( | |||
| 2163 | XFS_DQ_HASH_UNLOCK(hash); | 2163 | XFS_DQ_HASH_UNLOCK(hash); |
| 2164 | xfs_qm_freelist_unlock(xfs_Gqm); | 2164 | xfs_qm_freelist_unlock(xfs_Gqm); |
| 2165 | if (++restarts >= XFS_QM_RECLAIM_MAX_RESTARTS) | 2165 | if (++restarts >= XFS_QM_RECLAIM_MAX_RESTARTS) |
| 2166 | return (nreclaimed); | 2166 | return nreclaimed; |
| 2167 | goto tryagain; | 2167 | goto tryagain; |
| 2168 | } | 2168 | } |
| 2169 | xfs_dqtrace_entry(dqp, "DQSHAKE: UNLINKING"); | 2169 | xfs_dqtrace_entry(dqp, "DQSHAKE: UNLINKING"); |
| @@ -2188,7 +2188,7 @@ xfs_qm_shake_freelist( | |||
| 2188 | dqp = nextdqp; | 2188 | dqp = nextdqp; |
| 2189 | } | 2189 | } |
| 2190 | xfs_qm_freelist_unlock(xfs_Gqm); | 2190 | xfs_qm_freelist_unlock(xfs_Gqm); |
| 2191 | return (nreclaimed); | 2191 | return nreclaimed; |
| 2192 | } | 2192 | } |
| 2193 | 2193 | ||
| 2194 | 2194 | ||
| @@ -2202,9 +2202,9 @@ xfs_qm_shake(int nr_to_scan, gfp_t gfp_mask) | |||
| 2202 | int ndqused, nfree, n; | 2202 | int ndqused, nfree, n; |
| 2203 | 2203 | ||
| 2204 | if (!kmem_shake_allow(gfp_mask)) | 2204 | if (!kmem_shake_allow(gfp_mask)) |
| 2205 | return (0); | 2205 | return 0; |
| 2206 | if (!xfs_Gqm) | 2206 | if (!xfs_Gqm) |
| 2207 | return (0); | 2207 | return 0; |
| 2208 | 2208 | ||
| 2209 | nfree = xfs_Gqm->qm_dqfreelist.qh_nelems; /* free dquots */ | 2209 | nfree = xfs_Gqm->qm_dqfreelist.qh_nelems; /* free dquots */ |
| 2210 | /* incore dquots in all f/s's */ | 2210 | /* incore dquots in all f/s's */ |
| @@ -2213,7 +2213,7 @@ xfs_qm_shake(int nr_to_scan, gfp_t gfp_mask) | |||
| 2213 | ASSERT(ndqused >= 0); | 2213 | ASSERT(ndqused >= 0); |
| 2214 | 2214 | ||
| 2215 | if (nfree <= ndqused && nfree < ndquot) | 2215 | if (nfree <= ndqused && nfree < ndquot) |
| 2216 | return (0); | 2216 | return 0; |
| 2217 | 2217 | ||
| 2218 | ndqused *= xfs_Gqm->qm_dqfree_ratio; /* target # of free dquots */ | 2218 | ndqused *= xfs_Gqm->qm_dqfree_ratio; /* target # of free dquots */ |
| 2219 | n = nfree - ndqused - ndquot; /* # over target */ | 2219 | n = nfree - ndqused - ndquot; /* # over target */ |
| @@ -2257,7 +2257,7 @@ xfs_qm_dqreclaim_one(void) | |||
| 2257 | xfs_dqunlock(dqp); | 2257 | xfs_dqunlock(dqp); |
| 2258 | xfs_qm_freelist_unlock(xfs_Gqm); | 2258 | xfs_qm_freelist_unlock(xfs_Gqm); |
| 2259 | if (++restarts >= XFS_QM_RECLAIM_MAX_RESTARTS) | 2259 | if (++restarts >= XFS_QM_RECLAIM_MAX_RESTARTS) |
| 2260 | return (NULL); | 2260 | return NULL; |
| 2261 | XQM_STATS_INC(xqmstats.xs_qm_dqwants); | 2261 | XQM_STATS_INC(xqmstats.xs_qm_dqwants); |
| 2262 | goto startagain; | 2262 | goto startagain; |
| 2263 | } | 2263 | } |
| @@ -2333,7 +2333,7 @@ xfs_qm_dqreclaim_one(void) | |||
| 2333 | } | 2333 | } |
| 2334 | 2334 | ||
| 2335 | xfs_qm_freelist_unlock(xfs_Gqm); | 2335 | xfs_qm_freelist_unlock(xfs_Gqm); |
| 2336 | return (dqpout); | 2336 | return dqpout; |
| 2337 | } | 2337 | } |
| 2338 | 2338 | ||
| 2339 | 2339 | ||
| @@ -2369,7 +2369,7 @@ xfs_qm_dqalloc_incore( | |||
| 2369 | */ | 2369 | */ |
| 2370 | memset(&dqp->q_core, 0, sizeof(dqp->q_core)); | 2370 | memset(&dqp->q_core, 0, sizeof(dqp->q_core)); |
| 2371 | *O_dqpp = dqp; | 2371 | *O_dqpp = dqp; |
| 2372 | return (B_FALSE); | 2372 | return B_FALSE; |
| 2373 | } | 2373 | } |
| 2374 | XQM_STATS_INC(xqmstats.xs_qm_dqreclaim_misses); | 2374 | XQM_STATS_INC(xqmstats.xs_qm_dqreclaim_misses); |
| 2375 | } | 2375 | } |
| @@ -2382,7 +2382,7 @@ xfs_qm_dqalloc_incore( | |||
| 2382 | *O_dqpp = kmem_zone_zalloc(xfs_Gqm->qm_dqzone, KM_SLEEP); | 2382 | *O_dqpp = kmem_zone_zalloc(xfs_Gqm->qm_dqzone, KM_SLEEP); |
| 2383 | atomic_inc(&xfs_Gqm->qm_totaldquots); | 2383 | atomic_inc(&xfs_Gqm->qm_totaldquots); |
| 2384 | 2384 | ||
| 2385 | return (B_TRUE); | 2385 | return B_TRUE; |
| 2386 | } | 2386 | } |
| 2387 | 2387 | ||
| 2388 | 2388 | ||
| @@ -2407,13 +2407,13 @@ xfs_qm_write_sb_changes( | |||
| 2407 | 0, | 2407 | 0, |
| 2408 | XFS_DEFAULT_LOG_COUNT))) { | 2408 | XFS_DEFAULT_LOG_COUNT))) { |
| 2409 | xfs_trans_cancel(tp, 0); | 2409 | xfs_trans_cancel(tp, 0); |
| 2410 | return (error); | 2410 | return error; |
| 2411 | } | 2411 | } |
| 2412 | 2412 | ||
| 2413 | xfs_mod_sb(tp, flags); | 2413 | xfs_mod_sb(tp, flags); |
| 2414 | (void) xfs_trans_commit(tp, 0, NULL); | 2414 | (void) xfs_trans_commit(tp, 0, NULL); |
| 2415 | 2415 | ||
| 2416 | return (0); | 2416 | return 0; |
| 2417 | } | 2417 | } |
| 2418 | 2418 | ||
| 2419 | 2419 | ||
| @@ -2463,7 +2463,7 @@ xfs_qm_vop_dqalloc( | |||
| 2463 | if ((error = xfs_qm_dqattach(ip, XFS_QMOPT_DQALLOC | | 2463 | if ((error = xfs_qm_dqattach(ip, XFS_QMOPT_DQALLOC | |
| 2464 | XFS_QMOPT_ILOCKED))) { | 2464 | XFS_QMOPT_ILOCKED))) { |
| 2465 | xfs_iunlock(ip, lockflags); | 2465 | xfs_iunlock(ip, lockflags); |
| 2466 | return (error); | 2466 | return error; |
| 2467 | } | 2467 | } |
| 2468 | } | 2468 | } |
| 2469 | 2469 | ||
| @@ -2486,7 +2486,7 @@ xfs_qm_vop_dqalloc( | |||
| 2486 | XFS_QMOPT_DOWARN, | 2486 | XFS_QMOPT_DOWARN, |
| 2487 | &uq))) { | 2487 | &uq))) { |
| 2488 | ASSERT(error != ENOENT); | 2488 | ASSERT(error != ENOENT); |
| 2489 | return (error); | 2489 | return error; |
| 2490 | } | 2490 | } |
| 2491 | /* | 2491 | /* |
| 2492 | * Get the ilock in the right order. | 2492 | * Get the ilock in the right order. |
| @@ -2517,7 +2517,7 @@ xfs_qm_vop_dqalloc( | |||
| 2517 | if (uq) | 2517 | if (uq) |
| 2518 | xfs_qm_dqrele(uq); | 2518 | xfs_qm_dqrele(uq); |
| 2519 | ASSERT(error != ENOENT); | 2519 | ASSERT(error != ENOENT); |
| 2520 | return (error); | 2520 | return error; |
| 2521 | } | 2521 | } |
| 2522 | xfs_dqunlock(gq); | 2522 | xfs_dqunlock(gq); |
| 2523 | lockflags = XFS_ILOCK_SHARED; | 2523 | lockflags = XFS_ILOCK_SHARED; |
| @@ -2565,7 +2565,7 @@ xfs_qm_vop_dqalloc( | |||
| 2565 | *O_gdqpp = gq; | 2565 | *O_gdqpp = gq; |
| 2566 | else if (gq) | 2566 | else if (gq) |
| 2567 | xfs_qm_dqrele(gq); | 2567 | xfs_qm_dqrele(gq); |
| 2568 | return (0); | 2568 | return 0; |
| 2569 | } | 2569 | } |
| 2570 | 2570 | ||
| 2571 | /* | 2571 | /* |
| @@ -2608,7 +2608,7 @@ xfs_qm_vop_chown( | |||
| 2608 | xfs_dqunlock(newdq); | 2608 | xfs_dqunlock(newdq); |
| 2609 | *IO_olddq = newdq; | 2609 | *IO_olddq = newdq; |
| 2610 | 2610 | ||
| 2611 | return (prevdq); | 2611 | return prevdq; |
| 2612 | } | 2612 | } |
| 2613 | 2613 | ||
| 2614 | /* | 2614 | /* |
| @@ -2702,12 +2702,12 @@ xfs_qm_vop_rename_dqattach( | |||
| 2702 | ip = i_tab[0]; | 2702 | ip = i_tab[0]; |
| 2703 | 2703 | ||
| 2704 | if (! XFS_IS_QUOTA_ON(ip->i_mount)) | 2704 | if (! XFS_IS_QUOTA_ON(ip->i_mount)) |
| 2705 | return (0); | 2705 | return 0; |
| 2706 | 2706 | ||
| 2707 | if (XFS_NOT_DQATTACHED(ip->i_mount, ip)) { | 2707 | if (XFS_NOT_DQATTACHED(ip->i_mount, ip)) { |
| 2708 | error = xfs_qm_dqattach(ip, 0); | 2708 | error = xfs_qm_dqattach(ip, 0); |
| 2709 | if (error) | 2709 | if (error) |
| 2710 | return (error); | 2710 | return error; |
| 2711 | } | 2711 | } |
| 2712 | for (i = 1; (i < 4 && i_tab[i]); i++) { | 2712 | for (i = 1; (i < 4 && i_tab[i]); i++) { |
| 2713 | /* | 2713 | /* |
| @@ -2717,11 +2717,11 @@ xfs_qm_vop_rename_dqattach( | |||
| 2717 | if (XFS_NOT_DQATTACHED(ip->i_mount, ip)) { | 2717 | if (XFS_NOT_DQATTACHED(ip->i_mount, ip)) { |
| 2718 | error = xfs_qm_dqattach(ip, 0); | 2718 | error = xfs_qm_dqattach(ip, 0); |
| 2719 | if (error) | 2719 | if (error) |
| 2720 | return (error); | 2720 | return error; |
| 2721 | } | 2721 | } |
| 2722 | } | 2722 | } |
| 2723 | } | 2723 | } |
| 2724 | return (0); | 2724 | return 0; |
| 2725 | } | 2725 | } |
| 2726 | 2726 | ||
| 2727 | void | 2727 | void |
| @@ -2834,7 +2834,7 @@ xfs_qm_dqhashlock_nowait( | |||
| 2834 | int locked; | 2834 | int locked; |
| 2835 | 2835 | ||
| 2836 | locked = mutex_trylock(&((dqp)->q_hash->qh_lock)); | 2836 | locked = mutex_trylock(&((dqp)->q_hash->qh_lock)); |
| 2837 | return (locked); | 2837 | return locked; |
| 2838 | } | 2838 | } |
| 2839 | 2839 | ||
| 2840 | int | 2840 | int |
| @@ -2844,7 +2844,7 @@ xfs_qm_freelist_lock_nowait( | |||
| 2844 | int locked; | 2844 | int locked; |
| 2845 | 2845 | ||
| 2846 | locked = mutex_trylock(&(xqm->qm_dqfreelist.qh_lock)); | 2846 | locked = mutex_trylock(&(xqm->qm_dqfreelist.qh_lock)); |
| 2847 | return (locked); | 2847 | return locked; |
| 2848 | } | 2848 | } |
| 2849 | 2849 | ||
| 2850 | STATIC int | 2850 | STATIC int |
| @@ -2855,5 +2855,5 @@ xfs_qm_mplist_nowait( | |||
| 2855 | 2855 | ||
| 2856 | ASSERT(mp->m_quotainfo); | 2856 | ASSERT(mp->m_quotainfo); |
| 2857 | locked = mutex_trylock(&(XFS_QI_MPLLOCK(mp))); | 2857 | locked = mutex_trylock(&(XFS_QI_MPLLOCK(mp))); |
| 2858 | return (locked); | 2858 | return locked; |
| 2859 | } | 2859 | } |
diff --git a/fs/xfs/xfs_dir_leaf.c b/fs/xfs/xfs_dir_leaf.c index 950df31efc46..e83074016abb 100644 --- a/fs/xfs/xfs_dir_leaf.c +++ b/fs/xfs/xfs_dir_leaf.c | |||
| @@ -147,7 +147,7 @@ xfs_dir_shortform_create(xfs_da_args_t *args, xfs_ino_t parent) | |||
| 147 | hdr->count = 0; | 147 | hdr->count = 0; |
| 148 | dp->i_d.di_size = sizeof(*hdr); | 148 | dp->i_d.di_size = sizeof(*hdr); |
| 149 | xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA); | 149 | xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA); |
| 150 | return(0); | 150 | return 0; |
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | /* | 153 | /* |
| @@ -180,7 +180,7 @@ xfs_dir_shortform_addname(xfs_da_args_t *args) | |||
| 180 | if (sfe->namelen == args->namelen && | 180 | if (sfe->namelen == args->namelen && |
| 181 | args->name[0] == sfe->name[0] && | 181 | args->name[0] == sfe->name[0] && |
| 182 | memcmp(args->name, sfe->name, args->namelen) == 0) | 182 | memcmp(args->name, sfe->name, args->namelen) == 0) |
| 183 | return(XFS_ERROR(EEXIST)); | 183 | return XFS_ERROR(EEXIST); |
| 184 | sfe = XFS_DIR_SF_NEXTENTRY(sfe); | 184 | sfe = XFS_DIR_SF_NEXTENTRY(sfe); |
| 185 | } | 185 | } |
| 186 | 186 | ||
| @@ -198,7 +198,7 @@ xfs_dir_shortform_addname(xfs_da_args_t *args) | |||
| 198 | dp->i_d.di_size += size; | 198 | dp->i_d.di_size += size; |
| 199 | xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA); | 199 | xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA); |
| 200 | 200 | ||
| 201 | return(0); | 201 | return 0; |
| 202 | } | 202 | } |
| 203 | 203 | ||
| 204 | /* | 204 | /* |
| @@ -238,7 +238,7 @@ xfs_dir_shortform_removename(xfs_da_args_t *args) | |||
| 238 | } | 238 | } |
| 239 | if (i < 0) { | 239 | if (i < 0) { |
| 240 | ASSERT(args->oknoent); | 240 | ASSERT(args->oknoent); |
| 241 | return(XFS_ERROR(ENOENT)); | 241 | return XFS_ERROR(ENOENT); |
| 242 | } | 242 | } |
| 243 | 243 | ||
| 244 | if ((base + size) != dp->i_d.di_size) { | 244 | if ((base + size) != dp->i_d.di_size) { |
| @@ -251,7 +251,7 @@ xfs_dir_shortform_removename(xfs_da_args_t *args) | |||
| 251 | dp->i_d.di_size -= size; | 251 | dp->i_d.di_size -= size; |
| 252 | xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA); | 252 | xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA); |
| 253 | 253 | ||
| 254 | return(0); | 254 | return 0; |
| 255 | } | 255 | } |
| 256 | 256 | ||
| 257 | /* | 257 | /* |
| @@ -390,7 +390,7 @@ xfs_dir_shortform_to_leaf(xfs_da_args_t *iargs) | |||
| 390 | 390 | ||
| 391 | out: | 391 | out: |
| 392 | kmem_free(tmpbuffer, size); | 392 | kmem_free(tmpbuffer, size); |
| 393 | return(retval); | 393 | return retval; |
| 394 | } | 394 | } |
| 395 | 395 | ||
| 396 | STATIC int | 396 | STATIC int |
| @@ -596,7 +596,7 @@ xfs_dir_shortform_replace(xfs_da_args_t *args) | |||
| 596 | /* XXX - replace assert? */ | 596 | /* XXX - replace assert? */ |
| 597 | XFS_DIR_SF_PUT_DIRINO(&args->inumber, &sf->hdr.parent); | 597 | XFS_DIR_SF_PUT_DIRINO(&args->inumber, &sf->hdr.parent); |
| 598 | xfs_trans_log_inode(args->trans, dp, XFS_ILOG_DDATA); | 598 | xfs_trans_log_inode(args->trans, dp, XFS_ILOG_DDATA); |
| 599 | return(0); | 599 | return 0; |
| 600 | } | 600 | } |
| 601 | ASSERT(args->namelen != 1 || args->name[0] != '.'); | 601 | ASSERT(args->namelen != 1 || args->name[0] != '.'); |
| 602 | sfe = &sf->list[0]; | 602 | sfe = &sf->list[0]; |
| @@ -608,12 +608,12 @@ xfs_dir_shortform_replace(xfs_da_args_t *args) | |||
| 608 | (char *)&sfe->inumber, sizeof(xfs_ino_t))); | 608 | (char *)&sfe->inumber, sizeof(xfs_ino_t))); |
| 609 | XFS_DIR_SF_PUT_DIRINO(&args->inumber, &sfe->inumber); | 609 | XFS_DIR_SF_PUT_DIRINO(&args->inumber, &sfe->inumber); |
| 610 | xfs_trans_log_inode(args->trans, dp, XFS_ILOG_DDATA); | 610 | xfs_trans_log_inode(args->trans, dp, XFS_ILOG_DDATA); |
| 611 | return(0); | 611 | return 0; |
| 612 | } | 612 | } |
| 613 | sfe = XFS_DIR_SF_NEXTENTRY(sfe); | 613 | sfe = XFS_DIR_SF_NEXTENTRY(sfe); |
| 614 | } | 614 | } |
| 615 | ASSERT(args->oknoent); | 615 | ASSERT(args->oknoent); |
| 616 | return(XFS_ERROR(ENOENT)); | 616 | return XFS_ERROR(ENOENT); |
| 617 | } | 617 | } |
| 618 | 618 | ||
| 619 | /* | 619 | /* |
| @@ -695,7 +695,7 @@ xfs_dir_leaf_to_shortform(xfs_da_args_t *iargs) | |||
| 695 | 695 | ||
| 696 | out: | 696 | out: |
| 697 | kmem_free(tmpbuffer, XFS_LBSIZE(dp->i_mount)); | 697 | kmem_free(tmpbuffer, XFS_LBSIZE(dp->i_mount)); |
| 698 | return(retval); | 698 | return retval; |
| 699 | } | 699 | } |
| 700 | 700 | ||
| 701 | /* | 701 | /* |
| @@ -715,17 +715,17 @@ xfs_dir_leaf_to_node(xfs_da_args_t *args) | |||
| 715 | retval = xfs_da_grow_inode(args, &blkno); | 715 | retval = xfs_da_grow_inode(args, &blkno); |
| 716 | ASSERT(blkno == 1); | 716 | ASSERT(blkno == 1); |
| 717 | if (retval) | 717 | if (retval) |
| 718 | return(retval); | 718 | return retval; |
| 719 | retval = xfs_da_read_buf(args->trans, args->dp, 0, -1, &bp1, | 719 | retval = xfs_da_read_buf(args->trans, args->dp, 0, -1, &bp1, |
| 720 | XFS_DATA_FORK); | 720 | XFS_DATA_FORK); |
| 721 | if (retval) | 721 | if (retval) |
| 722 | return(retval); | 722 | return retval; |
| 723 | ASSERT(bp1 != NULL); | 723 | ASSERT(bp1 != NULL); |
| 724 | retval = xfs_da_get_buf(args->trans, args->dp, 1, -1, &bp2, | 724 | retval = xfs_da_get_buf(args->trans, args->dp, 1, -1, &bp2, |
| 725 | XFS_DATA_FORK); | 725 | XFS_DATA_FORK); |
| 726 | if (retval) { | 726 | if (retval) { |
| 727 | xfs_da_buf_done(bp1); | 727 | xfs_da_buf_done(bp1); |
| 728 | return(retval); | 728 | return retval; |
| 729 | } | 729 | } |
| 730 | ASSERT(bp2 != NULL); | 730 | ASSERT(bp2 != NULL); |
| 731 | memcpy(bp2->data, bp1->data, XFS_LBSIZE(dp->i_mount)); | 731 | memcpy(bp2->data, bp1->data, XFS_LBSIZE(dp->i_mount)); |
| @@ -738,7 +738,7 @@ xfs_dir_leaf_to_node(xfs_da_args_t *args) | |||
| 738 | retval = xfs_da_node_create(args, 0, 1, &bp1, XFS_DATA_FORK); | 738 | retval = xfs_da_node_create(args, 0, 1, &bp1, XFS_DATA_FORK); |
| 739 | if (retval) { | 739 | if (retval) { |
| 740 | xfs_da_buf_done(bp2); | 740 | xfs_da_buf_done(bp2); |
| 741 | return(retval); | 741 | return retval; |
| 742 | } | 742 | } |
| 743 | node = bp1->data; | 743 | node = bp1->data; |
| 744 | leaf = bp2->data; | 744 | leaf = bp2->data; |
| @@ -751,7 +751,7 @@ xfs_dir_leaf_to_node(xfs_da_args_t *args) | |||
| 751 | XFS_DA_LOGRANGE(node, &node->btree[0], sizeof(node->btree[0]))); | 751 | XFS_DA_LOGRANGE(node, &node->btree[0], sizeof(node->btree[0]))); |
| 752 | xfs_da_buf_done(bp1); | 752 | xfs_da_buf_done(bp1); |
| 753 | 753 | ||
| 754 | return(retval); | 754 | return retval; |
| 755 | } | 755 | } |
| 756 | 756 | ||
| 757 | 757 | ||
| @@ -776,7 +776,7 @@ xfs_dir_leaf_create(xfs_da_args_t *args, xfs_dablk_t blkno, xfs_dabuf_t **bpp) | |||
| 776 | ASSERT(dp != NULL); | 776 | ASSERT(dp != NULL); |
| 777 | retval = xfs_da_get_buf(args->trans, dp, blkno, -1, &bp, XFS_DATA_FORK); | 777 | retval = xfs_da_get_buf(args->trans, dp, blkno, -1, &bp, XFS_DATA_FORK); |
| 778 | if (retval) | 778 | if (retval) |
| 779 | return(retval); | 779 | return retval; |
| 780 | ASSERT(bp != NULL); | 780 | ASSERT(bp != NULL); |
| 781 | leaf = bp->data; | 781 | leaf = bp->data; |
| 782 | memset((char *)leaf, 0, XFS_LBSIZE(dp->i_mount)); | 782 | memset((char *)leaf, 0, XFS_LBSIZE(dp->i_mount)); |
| @@ -791,7 +791,7 @@ xfs_dir_leaf_create(xfs_da_args_t *args, xfs_dablk_t blkno, xfs_dabuf_t **bpp) | |||
| 791 | xfs_da_log_buf(args->trans, bp, 0, XFS_LBSIZE(dp->i_mount) - 1); | 791 | xfs_da_log_buf(args->trans, bp, 0, XFS_LBSIZE(dp->i_mount) - 1); |
| 792 | 792 | ||
| 793 | *bpp = bp; | 793 | *bpp = bp; |
| 794 | return(0); | 794 | return 0; |
| 795 | } | 795 | } |
| 796 | 796 | ||
| 797 | /* | 797 | /* |
| @@ -813,10 +813,10 @@ xfs_dir_leaf_split(xfs_da_state_t *state, xfs_da_state_blk_t *oldblk, | |||
| 813 | ASSERT(oldblk->magic == XFS_DIR_LEAF_MAGIC); | 813 | ASSERT(oldblk->magic == XFS_DIR_LEAF_MAGIC); |
| 814 | error = xfs_da_grow_inode(args, &blkno); | 814 | error = xfs_da_grow_inode(args, &blkno); |
| 815 | if (error) | 815 | if (error) |
| 816 | return(error); | 816 | return error; |
| 817 | error = xfs_dir_leaf_create(args, blkno, &newblk->bp); | 817 | error = xfs_dir_leaf_create(args, blkno, &newblk->bp); |
| 818 | if (error) | 818 | if (error) |
| 819 | return(error); | 819 | return error; |
| 820 | newblk->blkno = blkno; | 820 | newblk->blkno = blkno; |
| 821 | newblk->magic = XFS_DIR_LEAF_MAGIC; | 821 | newblk->magic = XFS_DIR_LEAF_MAGIC; |
| 822 | 822 | ||
| @@ -826,7 +826,7 @@ xfs_dir_leaf_split(xfs_da_state_t *state, xfs_da_state_blk_t *oldblk, | |||
| 826 | xfs_dir_leaf_rebalance(state, oldblk, newblk); | 826 | xfs_dir_leaf_rebalance(state, oldblk, newblk); |
| 827 | error = xfs_da_blk_link(state, oldblk, newblk); | 827 | error = xfs_da_blk_link(state, oldblk, newblk); |
| 828 | if (error) | 828 | if (error) |
| 829 | return(error); | 829 | return error; |
| 830 | 830 | ||
| 831 | /* | 831 | /* |
| 832 | * Insert the new entry in the correct block. | 832 | * Insert the new entry in the correct block. |
| @@ -842,7 +842,7 @@ xfs_dir_leaf_split(xfs_da_state_t *state, xfs_da_state_blk_t *oldblk, | |||
| 842 | */ | 842 | */ |
| 843 | oldblk->hashval = xfs_dir_leaf_lasthash(oldblk->bp, NULL); | 843 | oldblk->hashval = xfs_dir_leaf_lasthash(oldblk->bp, NULL); |
| 844 | newblk->hashval = xfs_dir_leaf_lasthash(newblk->bp, NULL); | 844 | newblk->hashval = xfs_dir_leaf_lasthash(newblk->bp, NULL); |
| 845 | return(error); | 845 | return error; |
| 846 | } | 846 | } |
| 847 | 847 | ||
| 848 | /* | 848 | /* |
| @@ -885,7 +885,7 @@ xfs_dir_leaf_add(xfs_dabuf_t *bp, xfs_da_args_t *args, int index) | |||
| 885 | if (INT_GET(map->size, ARCH_CONVERT) >= tmp) { | 885 | if (INT_GET(map->size, ARCH_CONVERT) >= tmp) { |
| 886 | if (!args->justcheck) | 886 | if (!args->justcheck) |
| 887 | xfs_dir_leaf_add_work(bp, args, index, i); | 887 | xfs_dir_leaf_add_work(bp, args, index, i); |
| 888 | return(0); | 888 | return 0; |
| 889 | } | 889 | } |
| 890 | sum += INT_GET(map->size, ARCH_CONVERT); | 890 | sum += INT_GET(map->size, ARCH_CONVERT); |
| 891 | } | 891 | } |
| @@ -896,7 +896,7 @@ xfs_dir_leaf_add(xfs_dabuf_t *bp, xfs_da_args_t *args, int index) | |||
| 896 | * no good and we should just give up. | 896 | * no good and we should just give up. |
| 897 | */ | 897 | */ |
| 898 | if (!hdr->holes && (sum < entsize)) | 898 | if (!hdr->holes && (sum < entsize)) |
| 899 | return(XFS_ERROR(ENOSPC)); | 899 | return XFS_ERROR(ENOSPC); |
| 900 | 900 | ||
| 901 | /* | 901 | /* |
| 902 | * Compact the entries to coalesce free space. | 902 | * Compact the entries to coalesce free space. |
| @@ -909,18 +909,18 @@ xfs_dir_leaf_add(xfs_dabuf_t *bp, xfs_da_args_t *args, int index) | |||
| 909 | (uint)sizeof(xfs_dir_leaf_entry_t) : 0, | 909 | (uint)sizeof(xfs_dir_leaf_entry_t) : 0, |
| 910 | args->justcheck); | 910 | args->justcheck); |
| 911 | if (error) | 911 | if (error) |
| 912 | return(error); | 912 | return error; |
| 913 | /* | 913 | /* |
| 914 | * After compaction, the block is guaranteed to have only one | 914 | * After compaction, the block is guaranteed to have only one |
| 915 | * free region, in freemap[0]. If it is not big enough, give up. | 915 | * free region, in freemap[0]. If it is not big enough, give up. |
| 916 | */ | 916 | */ |
| 917 | if (INT_GET(hdr->freemap[0].size, ARCH_CONVERT) < | 917 | if (INT_GET(hdr->freemap[0].size, ARCH_CONVERT) < |
| 918 | (entsize + (uint)sizeof(xfs_dir_leaf_entry_t))) | 918 | (entsize + (uint)sizeof(xfs_dir_leaf_entry_t))) |
| 919 | return(XFS_ERROR(ENOSPC)); | 919 | return XFS_ERROR(ENOSPC); |
| 920 | 920 | ||
| 921 | if (!args->justcheck) | 921 | if (!args->justcheck) |
| 922 | xfs_dir_leaf_add_work(bp, args, index, 0); | 922 | xfs_dir_leaf_add_work(bp, args, index, 0); |
| 923 | return(0); | 923 | return 0; |
| 924 | } | 924 | } |
| 925 | 925 | ||
| 926 | /* | 926 | /* |
| @@ -1072,7 +1072,7 @@ xfs_dir_leaf_compact(xfs_trans_t *trans, xfs_dabuf_t *bp, int musthave, | |||
| 1072 | kmem_free(tmpbuffer, lbsize); | 1072 | kmem_free(tmpbuffer, lbsize); |
| 1073 | if (musthave || justcheck) | 1073 | if (musthave || justcheck) |
| 1074 | kmem_free(tmpbuffer2, lbsize); | 1074 | kmem_free(tmpbuffer2, lbsize); |
| 1075 | return(rval); | 1075 | return rval; |
| 1076 | } | 1076 | } |
| 1077 | 1077 | ||
| 1078 | /* | 1078 | /* |
| @@ -1292,7 +1292,7 @@ xfs_dir_leaf_figure_balance(xfs_da_state_t *state, | |||
| 1292 | 1292 | ||
| 1293 | *countarg = count; | 1293 | *countarg = count; |
| 1294 | *namebytesarg = totallen; | 1294 | *namebytesarg = totallen; |
| 1295 | return(foundit); | 1295 | return foundit; |
| 1296 | } | 1296 | } |
| 1297 | 1297 | ||
| 1298 | /*======================================================================== | 1298 | /*======================================================================== |
| @@ -1334,7 +1334,7 @@ xfs_dir_leaf_toosmall(xfs_da_state_t *state, int *action) | |||
| 1334 | INT_GET(leaf->hdr.namebytes, ARCH_CONVERT); | 1334 | INT_GET(leaf->hdr.namebytes, ARCH_CONVERT); |
| 1335 | if (bytes > (state->blocksize >> 1)) { | 1335 | if (bytes > (state->blocksize >> 1)) { |
| 1336 | *action = 0; /* blk over 50%, don't try to join */ | 1336 | *action = 0; /* blk over 50%, don't try to join */ |
| 1337 | return(0); | 1337 | return 0; |
| 1338 | } | 1338 | } |
| 1339 | 1339 | ||
| 1340 | /* | 1340 | /* |
| @@ -1353,13 +1353,13 @@ xfs_dir_leaf_toosmall(xfs_da_state_t *state, int *action) | |||
| 1353 | error = xfs_da_path_shift(state, &state->altpath, forward, | 1353 | error = xfs_da_path_shift(state, &state->altpath, forward, |
| 1354 | 0, &retval); | 1354 | 0, &retval); |
| 1355 | if (error) | 1355 | if (error) |
| 1356 | return(error); | 1356 | return error; |
| 1357 | if (retval) { | 1357 | if (retval) { |
| 1358 | *action = 0; | 1358 | *action = 0; |
| 1359 | } else { | 1359 | } else { |
| 1360 | *action = 2; | 1360 | *action = 2; |
| 1361 | } | 1361 | } |
| 1362 | return(0); | 1362 | return 0; |
| 1363 | } | 1363 | } |
| 1364 | 1364 | ||
| 1365 | /* | 1365 | /* |
| @@ -1381,7 +1381,7 @@ xfs_dir_leaf_toosmall(xfs_da_state_t *state, int *action) | |||
| 1381 | blkno, -1, &bp, | 1381 | blkno, -1, &bp, |
| 1382 | XFS_DATA_FORK); | 1382 | XFS_DATA_FORK); |
| 1383 | if (error) | 1383 | if (error) |
| 1384 | return(error); | 1384 | return error; |
| 1385 | ASSERT(bp != NULL); | 1385 | ASSERT(bp != NULL); |
| 1386 | 1386 | ||
| 1387 | leaf = (xfs_dir_leafblock_t *)info; | 1387 | leaf = (xfs_dir_leafblock_t *)info; |
| @@ -1402,7 +1402,7 @@ xfs_dir_leaf_toosmall(xfs_da_state_t *state, int *action) | |||
| 1402 | } | 1402 | } |
| 1403 | if (i >= 2) { | 1403 | if (i >= 2) { |
| 1404 | *action = 0; | 1404 | *action = 0; |
| 1405 | return(0); | 1405 | return 0; |
| 1406 | } | 1406 | } |
| 1407 | xfs_da_buf_done(bp); | 1407 | xfs_da_buf_done(bp); |
| 1408 | 1408 | ||
| @@ -1419,13 +1419,13 @@ xfs_dir_leaf_toosmall(xfs_da_state_t *state, int *action) | |||
| 1419 | 0, &retval); | 1419 | 0, &retval); |
| 1420 | } | 1420 | } |
| 1421 | if (error) | 1421 | if (error) |
| 1422 | return(error); | 1422 | return error; |
| 1423 | if (retval) { | 1423 | if (retval) { |
| 1424 | *action = 0; | 1424 | *action = 0; |
| 1425 | } else { | 1425 | } else { |
| 1426 | *action = 1; | 1426 | *action = 1; |
| 1427 | } | 1427 | } |
| 1428 | return(0); | 1428 | return 0; |
| 1429 | } | 1429 | } |
| 1430 | 1430 | ||
| 1431 | /* | 1431 | /* |
| @@ -1575,8 +1575,8 @@ xfs_dir_leaf_remove(xfs_trans_t *trans, xfs_dabuf_t *bp, int index) | |||
| 1575 | tmp += INT_GET(leaf->hdr.count, ARCH_CONVERT) * ((uint)sizeof(xfs_dir_leaf_name_t) - 1); | 1575 | tmp += INT_GET(leaf->hdr.count, ARCH_CONVERT) * ((uint)sizeof(xfs_dir_leaf_name_t) - 1); |
| 1576 | tmp += INT_GET(leaf->hdr.namebytes, ARCH_CONVERT); | 1576 | tmp += INT_GET(leaf->hdr.namebytes, ARCH_CONVERT); |
| 1577 | if (tmp < mp->m_dir_magicpct) | 1577 | if (tmp < mp->m_dir_magicpct) |
| 1578 | return(1); /* leaf is < 37% full */ | 1578 | return 1; /* leaf is < 37% full */ |
| 1579 | return(0); | 1579 | return 0; |
| 1580 | } | 1580 | } |
| 1581 | 1581 | ||
| 1582 | /* | 1582 | /* |
| @@ -1732,7 +1732,7 @@ xfs_dir_leaf_lookup_int(xfs_dabuf_t *bp, xfs_da_args_t *args, int *index) | |||
| 1732 | if ((probe == INT_GET(leaf->hdr.count, ARCH_CONVERT)) || (INT_GET(entry->hashval, ARCH_CONVERT) != hashval)) { | 1732 | if ((probe == INT_GET(leaf->hdr.count, ARCH_CONVERT)) || (INT_GET(entry->hashval, ARCH_CONVERT) != hashval)) { |
| 1733 | *index = probe; | 1733 | *index = probe; |
| 1734 | ASSERT(args->oknoent); | 1734 | ASSERT(args->oknoent); |
| 1735 | return(XFS_ERROR(ENOENT)); | 1735 | return XFS_ERROR(ENOENT); |
| 1736 | } | 1736 | } |
| 1737 | 1737 | ||
| 1738 | /* | 1738 | /* |
| @@ -1745,14 +1745,14 @@ xfs_dir_leaf_lookup_int(xfs_dabuf_t *bp, xfs_da_args_t *args, int *index) | |||
| 1745 | memcmp(args->name, namest->name, args->namelen) == 0) { | 1745 | memcmp(args->name, namest->name, args->namelen) == 0) { |
| 1746 | XFS_DIR_SF_GET_DIRINO(&namest->inumber, &args->inumber); | 1746 | XFS_DIR_SF_GET_DIRINO(&namest->inumber, &args->inumber); |
| 1747 | *index = probe; | 1747 | *index = probe; |
| 1748 | return(XFS_ERROR(EEXIST)); | 1748 | return XFS_ERROR(EEXIST); |
| 1749 | } | 1749 | } |
| 1750 | entry++; | 1750 | entry++; |
| 1751 | probe++; | 1751 | probe++; |
| 1752 | } | 1752 | } |
| 1753 | *index = probe; | 1753 | *index = probe; |
| 1754 | ASSERT(probe == INT_GET(leaf->hdr.count, ARCH_CONVERT) || args->oknoent); | 1754 | ASSERT(probe == INT_GET(leaf->hdr.count, ARCH_CONVERT) || args->oknoent); |
| 1755 | return(XFS_ERROR(ENOENT)); | 1755 | return XFS_ERROR(ENOENT); |
| 1756 | } | 1756 | } |
| 1757 | 1757 | ||
| 1758 | /*======================================================================== | 1758 | /*======================================================================== |
| @@ -1890,9 +1890,9 @@ xfs_dir_leaf_order(xfs_dabuf_t *leaf1_bp, xfs_dabuf_t *leaf2_bp) | |||
| 1890 | INT_GET(leaf1->entries[ 0 ].hashval, ARCH_CONVERT)) || | 1890 | INT_GET(leaf1->entries[ 0 ].hashval, ARCH_CONVERT)) || |
| 1891 | (INT_GET(leaf2->entries[ INT_GET(leaf2->hdr.count, ARCH_CONVERT)-1 ].hashval, ARCH_CONVERT) < | 1891 | (INT_GET(leaf2->entries[ INT_GET(leaf2->hdr.count, ARCH_CONVERT)-1 ].hashval, ARCH_CONVERT) < |
| 1892 | INT_GET(leaf1->entries[ INT_GET(leaf1->hdr.count, ARCH_CONVERT)-1 ].hashval, ARCH_CONVERT)))) { | 1892 | INT_GET(leaf1->entries[ INT_GET(leaf1->hdr.count, ARCH_CONVERT)-1 ].hashval, ARCH_CONVERT)))) { |
| 1893 | return(1); | 1893 | return 1; |
| 1894 | } | 1894 | } |
| 1895 | return(0); | 1895 | return 0; |
| 1896 | } | 1896 | } |
| 1897 | 1897 | ||
| 1898 | /* | 1898 | /* |
| @@ -1942,7 +1942,7 @@ xfs_dir_leaf_getdents_int( | |||
| 1942 | leaf = bp->data; | 1942 | leaf = bp->data; |
| 1943 | if (INT_GET(leaf->hdr.info.magic, ARCH_CONVERT) != XFS_DIR_LEAF_MAGIC) { | 1943 | if (INT_GET(leaf->hdr.info.magic, ARCH_CONVERT) != XFS_DIR_LEAF_MAGIC) { |
| 1944 | *eobp = 1; | 1944 | *eobp = 1; |
| 1945 | return(XFS_ERROR(ENOENT)); /* XXX wrong code */ | 1945 | return XFS_ERROR(ENOENT); /* XXX wrong code */ |
| 1946 | } | 1946 | } |
| 1947 | 1947 | ||
| 1948 | want_entno = XFS_DA_COOKIE_ENTRY(mp, uio->uio_offset); | 1948 | want_entno = XFS_DA_COOKIE_ENTRY(mp, uio->uio_offset); |
| @@ -2000,7 +2000,7 @@ xfs_dir_leaf_getdents_int( | |||
| 2000 | * the node code will be setting uio_offset anyway. | 2000 | * the node code will be setting uio_offset anyway. |
| 2001 | */ | 2001 | */ |
| 2002 | *eobp = 0; | 2002 | *eobp = 0; |
| 2003 | return(0); | 2003 | return 0; |
| 2004 | } | 2004 | } |
| 2005 | xfs_dir_trace_g_due("leaf: hash found", dp, uio, entry); | 2005 | xfs_dir_trace_g_due("leaf: hash found", dp, uio, entry); |
| 2006 | 2006 | ||
| @@ -2057,7 +2057,7 @@ xfs_dir_leaf_getdents_int( | |||
| 2057 | retval = xfs_da_read_buf(dp->i_transp, dp, thishash, | 2057 | retval = xfs_da_read_buf(dp->i_transp, dp, thishash, |
| 2058 | nextda, &bp2, XFS_DATA_FORK); | 2058 | nextda, &bp2, XFS_DATA_FORK); |
| 2059 | if (retval) | 2059 | if (retval) |
| 2060 | return(retval); | 2060 | return retval; |
| 2061 | 2061 | ||
| 2062 | ASSERT(bp2 != NULL); | 2062 | ASSERT(bp2 != NULL); |
| 2063 | 2063 | ||
| @@ -2073,7 +2073,7 @@ xfs_dir_leaf_getdents_int( | |||
| 2073 | leaf2); | 2073 | leaf2); |
| 2074 | xfs_da_brelse(dp->i_transp, bp2); | 2074 | xfs_da_brelse(dp->i_transp, bp2); |
| 2075 | 2075 | ||
| 2076 | return(XFS_ERROR(EFSCORRUPTED)); | 2076 | return XFS_ERROR(EFSCORRUPTED); |
| 2077 | } | 2077 | } |
| 2078 | 2078 | ||
| 2079 | nexthash = INT_GET(leaf2->entries[0].hashval, | 2079 | nexthash = INT_GET(leaf2->entries[0].hashval, |
| @@ -2139,7 +2139,7 @@ xfs_dir_leaf_getdents_int( | |||
| 2139 | 2139 | ||
| 2140 | xfs_dir_trace_g_du("leaf: E-O-B", dp, uio); | 2140 | xfs_dir_trace_g_du("leaf: E-O-B", dp, uio); |
| 2141 | 2141 | ||
| 2142 | return(retval); | 2142 | return retval; |
| 2143 | } | 2143 | } |
| 2144 | } | 2144 | } |
| 2145 | 2145 | ||
| @@ -2149,7 +2149,7 @@ xfs_dir_leaf_getdents_int( | |||
| 2149 | 2149 | ||
| 2150 | xfs_dir_trace_g_du("leaf: E-O-F", dp, uio); | 2150 | xfs_dir_trace_g_du("leaf: E-O-F", dp, uio); |
| 2151 | 2151 | ||
| 2152 | return(0); | 2152 | return 0; |
| 2153 | } | 2153 | } |
| 2154 | 2154 | ||
| 2155 | /* | 2155 | /* |
diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c index 163031c1e394..b4d971b01588 100644 --- a/fs/xfs/xfs_fsops.c +++ b/fs/xfs/xfs_fsops.c | |||
| @@ -501,7 +501,7 @@ xfs_reserve_blocks( | |||
| 501 | if (inval == (__uint64_t *)NULL) { | 501 | if (inval == (__uint64_t *)NULL) { |
| 502 | outval->resblks = mp->m_resblks; | 502 | outval->resblks = mp->m_resblks; |
| 503 | outval->resblks_avail = mp->m_resblks_avail; | 503 | outval->resblks_avail = mp->m_resblks_avail; |
| 504 | return(0); | 504 | return 0; |
| 505 | } | 505 | } |
| 506 | 506 | ||
| 507 | request = *inval; | 507 | request = *inval; |
| @@ -537,7 +537,7 @@ xfs_reserve_blocks( | |||
| 537 | outval->resblks = mp->m_resblks; | 537 | outval->resblks = mp->m_resblks; |
| 538 | outval->resblks_avail = mp->m_resblks_avail; | 538 | outval->resblks_avail = mp->m_resblks_avail; |
| 539 | XFS_SB_UNLOCK(mp, s); | 539 | XFS_SB_UNLOCK(mp, s); |
| 540 | return(0); | 540 | return 0; |
| 541 | } | 541 | } |
| 542 | 542 | ||
| 543 | void | 543 | void |
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 3d9a36e77363..9176995160ed 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c | |||
| @@ -403,7 +403,7 @@ xfs_log_release_iclog(xfs_mount_t *mp, | |||
| 403 | 403 | ||
| 404 | if (xlog_state_release_iclog(log, iclog)) { | 404 | if (xlog_state_release_iclog(log, iclog)) { |
| 405 | xfs_force_shutdown(mp, XFS_LOG_IO_ERROR); | 405 | xfs_force_shutdown(mp, XFS_LOG_IO_ERROR); |
| 406 | return(EIO); | 406 | return EIO; |
| 407 | } | 407 | } |
| 408 | 408 | ||
| 409 | return 0; | 409 | return 0; |
| @@ -556,7 +556,7 @@ xfs_log_unmount(xfs_mount_t *mp) | |||
| 556 | 556 | ||
| 557 | error = xfs_log_unmount_write(mp); | 557 | error = xfs_log_unmount_write(mp); |
| 558 | xfs_log_unmount_dealloc(mp); | 558 | xfs_log_unmount_dealloc(mp); |
| 559 | return (error); | 559 | return error; |
| 560 | } | 560 | } |
| 561 | 561 | ||
| 562 | /* | 562 | /* |
| @@ -728,7 +728,7 @@ xfs_log_write(xfs_mount_t * mp, | |||
| 728 | if ((error = xlog_write(mp, reg, nentries, tic, start_lsn, NULL, 0))) { | 728 | if ((error = xlog_write(mp, reg, nentries, tic, start_lsn, NULL, 0))) { |
| 729 | xfs_force_shutdown(mp, XFS_LOG_IO_ERROR); | 729 | xfs_force_shutdown(mp, XFS_LOG_IO_ERROR); |
| 730 | } | 730 | } |
| 731 | return (error); | 731 | return error; |
| 732 | } /* xfs_log_write */ | 732 | } /* xfs_log_write */ |
| 733 | 733 | ||
| 734 | 734 | ||
| @@ -836,7 +836,7 @@ xfs_log_need_covered(xfs_mount_t *mp) | |||
| 836 | needed = 1; | 836 | needed = 1; |
| 837 | } | 837 | } |
| 838 | LOG_UNLOCK(log, s); | 838 | LOG_UNLOCK(log, s); |
| 839 | return(needed); | 839 | return needed; |
| 840 | } | 840 | } |
| 841 | 841 | ||
| 842 | /****************************************************************************** | 842 | /****************************************************************************** |
| @@ -1003,7 +1003,7 @@ xlog_bdstrat_cb(struct xfs_buf *bp) | |||
| 1003 | XFS_BUF_ERROR(bp, EIO); | 1003 | XFS_BUF_ERROR(bp, EIO); |
| 1004 | XFS_BUF_STALE(bp); | 1004 | XFS_BUF_STALE(bp); |
| 1005 | xfs_biodone(bp); | 1005 | xfs_biodone(bp); |
| 1006 | return (XFS_ERROR(EIO)); | 1006 | return XFS_ERROR(EIO); |
| 1007 | 1007 | ||
| 1008 | 1008 | ||
| 1009 | } | 1009 | } |
| @@ -1263,7 +1263,7 @@ xlog_commit_record(xfs_mount_t *mp, | |||
| 1263 | iclog, XLOG_COMMIT_TRANS))) { | 1263 | iclog, XLOG_COMMIT_TRANS))) { |
| 1264 | xfs_force_shutdown(mp, XFS_LOG_IO_ERROR); | 1264 | xfs_force_shutdown(mp, XFS_LOG_IO_ERROR); |
| 1265 | } | 1265 | } |
| 1266 | return (error); | 1266 | return error; |
| 1267 | } /* xlog_commit_record */ | 1267 | } /* xlog_commit_record */ |
| 1268 | 1268 | ||
| 1269 | 1269 | ||
| @@ -1460,7 +1460,7 @@ xlog_sync(xlog_t *log, | |||
| 1460 | if ((error = XFS_bwrite(bp))) { | 1460 | if ((error = XFS_bwrite(bp))) { |
| 1461 | xfs_ioerror_alert("xlog_sync", log->l_mp, bp, | 1461 | xfs_ioerror_alert("xlog_sync", log->l_mp, bp, |
| 1462 | XFS_BUF_ADDR(bp)); | 1462 | XFS_BUF_ADDR(bp)); |
| 1463 | return (error); | 1463 | return error; |
| 1464 | } | 1464 | } |
| 1465 | if (split) { | 1465 | if (split) { |
| 1466 | bp = iclog->ic_log->l_xbuf; | 1466 | bp = iclog->ic_log->l_xbuf; |
| @@ -1498,10 +1498,10 @@ xlog_sync(xlog_t *log, | |||
| 1498 | if ((error = XFS_bwrite(bp))) { | 1498 | if ((error = XFS_bwrite(bp))) { |
| 1499 | xfs_ioerror_alert("xlog_sync (split)", log->l_mp, | 1499 | xfs_ioerror_alert("xlog_sync (split)", log->l_mp, |
| 1500 | bp, XFS_BUF_ADDR(bp)); | 1500 | bp, XFS_BUF_ADDR(bp)); |
| 1501 | return (error); | 1501 | return error; |
| 1502 | } | 1502 | } |
| 1503 | } | 1503 | } |
| 1504 | return (0); | 1504 | return 0; |
| 1505 | } /* xlog_sync */ | 1505 | } /* xlog_sync */ |
| 1506 | 1506 | ||
| 1507 | 1507 | ||
| @@ -1798,7 +1798,7 @@ xlog_write(xfs_mount_t * mp, | |||
| 1798 | for (index = 0; index < nentries; ) { | 1798 | for (index = 0; index < nentries; ) { |
| 1799 | if ((error = xlog_state_get_iclog_space(log, len, &iclog, ticket, | 1799 | if ((error = xlog_state_get_iclog_space(log, len, &iclog, ticket, |
| 1800 | &contwr, &log_offset))) | 1800 | &contwr, &log_offset))) |
| 1801 | return (error); | 1801 | return error; |
| 1802 | 1802 | ||
| 1803 | ASSERT(log_offset <= iclog->ic_size - 1); | 1803 | ASSERT(log_offset <= iclog->ic_size - 1); |
| 1804 | ptr = (__psint_t) ((char *)iclog->ic_datap+log_offset); | 1804 | ptr = (__psint_t) ((char *)iclog->ic_datap+log_offset); |
| @@ -1903,7 +1903,7 @@ xlog_write(xfs_mount_t * mp, | |||
| 1903 | xlog_state_finish_copy(log, iclog, record_cnt, data_cnt); | 1903 | xlog_state_finish_copy(log, iclog, record_cnt, data_cnt); |
| 1904 | record_cnt = data_cnt = 0; | 1904 | record_cnt = data_cnt = 0; |
| 1905 | if ((error = xlog_state_release_iclog(log, iclog))) | 1905 | if ((error = xlog_state_release_iclog(log, iclog))) |
| 1906 | return (error); | 1906 | return error; |
| 1907 | break; /* don't increment index */ | 1907 | break; /* don't increment index */ |
| 1908 | } else { /* copied entire region */ | 1908 | } else { /* copied entire region */ |
| 1909 | index++; | 1909 | index++; |
| @@ -1917,7 +1917,7 @@ xlog_write(xfs_mount_t * mp, | |||
| 1917 | ASSERT(flags & XLOG_COMMIT_TRANS); | 1917 | ASSERT(flags & XLOG_COMMIT_TRANS); |
| 1918 | *commit_iclog = iclog; | 1918 | *commit_iclog = iclog; |
| 1919 | } else if ((error = xlog_state_release_iclog(log, iclog))) | 1919 | } else if ((error = xlog_state_release_iclog(log, iclog))) |
| 1920 | return (error); | 1920 | return error; |
| 1921 | if (index == nentries) | 1921 | if (index == nentries) |
| 1922 | return 0; /* we are done */ | 1922 | return 0; /* we are done */ |
| 1923 | else | 1923 | else |
| @@ -1934,7 +1934,7 @@ xlog_write(xfs_mount_t * mp, | |||
| 1934 | *commit_iclog = iclog; | 1934 | *commit_iclog = iclog; |
| 1935 | return 0; | 1935 | return 0; |
| 1936 | } | 1936 | } |
| 1937 | return (xlog_state_release_iclog(log, iclog)); | 1937 | return xlog_state_release_iclog(log, iclog); |
| 1938 | } /* xlog_write */ | 1938 | } /* xlog_write */ |
| 1939 | 1939 | ||
| 1940 | 1940 | ||
| @@ -2050,7 +2050,7 @@ xlog_get_lowest_lsn( | |||
| 2050 | } | 2050 | } |
| 2051 | lsn_log = lsn_log->ic_next; | 2051 | lsn_log = lsn_log->ic_next; |
| 2052 | } while (lsn_log != log->l_iclog); | 2052 | } while (lsn_log != log->l_iclog); |
| 2053 | return(lowest_lsn); | 2053 | return lowest_lsn; |
| 2054 | } | 2054 | } |
| 2055 | 2055 | ||
| 2056 | 2056 | ||
| @@ -2402,7 +2402,7 @@ restart: | |||
| 2402 | if (iclog->ic_refcnt == 1) { | 2402 | if (iclog->ic_refcnt == 1) { |
| 2403 | LOG_UNLOCK(log, s); | 2403 | LOG_UNLOCK(log, s); |
| 2404 | if ((error = xlog_state_release_iclog(log, iclog))) | 2404 | if ((error = xlog_state_release_iclog(log, iclog))) |
| 2405 | return (error); | 2405 | return error; |
| 2406 | } else { | 2406 | } else { |
| 2407 | iclog->ic_refcnt--; | 2407 | iclog->ic_refcnt--; |
| 2408 | LOG_UNLOCK(log, s); | 2408 | LOG_UNLOCK(log, s); |
| @@ -2569,7 +2569,7 @@ xlog_regrant_write_log_space(xlog_t *log, | |||
| 2569 | XLOG_TIC_RESET_RES(tic); | 2569 | XLOG_TIC_RESET_RES(tic); |
| 2570 | 2570 | ||
| 2571 | if (tic->t_cnt > 0) | 2571 | if (tic->t_cnt > 0) |
| 2572 | return (0); | 2572 | return 0; |
| 2573 | 2573 | ||
| 2574 | #ifdef DEBUG | 2574 | #ifdef DEBUG |
| 2575 | if (log->l_flags & XLOG_ACTIVE_RECOVERY) | 2575 | if (log->l_flags & XLOG_ACTIVE_RECOVERY) |
| @@ -2667,7 +2667,7 @@ redo: | |||
| 2667 | xlog_trace_loggrant(log, tic, "xlog_regrant_write_log_space: exit"); | 2667 | xlog_trace_loggrant(log, tic, "xlog_regrant_write_log_space: exit"); |
| 2668 | xlog_verify_grant_head(log, 1); | 2668 | xlog_verify_grant_head(log, 1); |
| 2669 | GRANT_UNLOCK(log, s); | 2669 | GRANT_UNLOCK(log, s); |
| 2670 | return (0); | 2670 | return 0; |
| 2671 | 2671 | ||
| 2672 | 2672 | ||
| 2673 | error_return: | 2673 | error_return: |
| @@ -2837,7 +2837,7 @@ xlog_state_release_iclog(xlog_t *log, | |||
| 2837 | if (sync) { | 2837 | if (sync) { |
| 2838 | return xlog_sync(log, iclog); | 2838 | return xlog_sync(log, iclog); |
| 2839 | } | 2839 | } |
| 2840 | return (0); | 2840 | return 0; |
| 2841 | 2841 | ||
| 2842 | } /* xlog_state_release_iclog */ | 2842 | } /* xlog_state_release_iclog */ |
| 2843 | 2843 | ||
| @@ -3127,7 +3127,7 @@ try_again: | |||
| 3127 | } while (iclog != log->l_iclog); | 3127 | } while (iclog != log->l_iclog); |
| 3128 | 3128 | ||
| 3129 | LOG_UNLOCK(log, s); | 3129 | LOG_UNLOCK(log, s); |
| 3130 | return (0); | 3130 | return 0; |
| 3131 | } /* xlog_state_sync */ | 3131 | } /* xlog_state_sync */ |
| 3132 | 3132 | ||
| 3133 | 3133 | ||
| @@ -3545,12 +3545,12 @@ xlog_state_ioerror( | |||
| 3545 | ic->ic_state = XLOG_STATE_IOERROR; | 3545 | ic->ic_state = XLOG_STATE_IOERROR; |
| 3546 | ic = ic->ic_next; | 3546 | ic = ic->ic_next; |
| 3547 | } while (ic != iclog); | 3547 | } while (ic != iclog); |
| 3548 | return (0); | 3548 | return 0; |
| 3549 | } | 3549 | } |
| 3550 | /* | 3550 | /* |
| 3551 | * Return non-zero, if state transition has already happened. | 3551 | * Return non-zero, if state transition has already happened. |
| 3552 | */ | 3552 | */ |
| 3553 | return (1); | 3553 | return 1; |
| 3554 | } | 3554 | } |
| 3555 | 3555 | ||
| 3556 | /* | 3556 | /* |
| @@ -3587,7 +3587,7 @@ xfs_log_force_umount( | |||
| 3587 | log->l_flags & XLOG_ACTIVE_RECOVERY) { | 3587 | log->l_flags & XLOG_ACTIVE_RECOVERY) { |
| 3588 | mp->m_flags |= XFS_MOUNT_FS_SHUTDOWN; | 3588 | mp->m_flags |= XFS_MOUNT_FS_SHUTDOWN; |
| 3589 | XFS_BUF_DONE(mp->m_sb_bp); | 3589 | XFS_BUF_DONE(mp->m_sb_bp); |
| 3590 | return (0); | 3590 | return 0; |
| 3591 | } | 3591 | } |
| 3592 | 3592 | ||
| 3593 | /* | 3593 | /* |
| @@ -3596,7 +3596,7 @@ xfs_log_force_umount( | |||
| 3596 | */ | 3596 | */ |
| 3597 | if (logerror && log->l_iclog->ic_state & XLOG_STATE_IOERROR) { | 3597 | if (logerror && log->l_iclog->ic_state & XLOG_STATE_IOERROR) { |
| 3598 | ASSERT(XLOG_FORCED_SHUTDOWN(log)); | 3598 | ASSERT(XLOG_FORCED_SHUTDOWN(log)); |
| 3599 | return (1); | 3599 | return 1; |
| 3600 | } | 3600 | } |
| 3601 | retval = 0; | 3601 | retval = 0; |
| 3602 | /* | 3602 | /* |
| @@ -3678,7 +3678,7 @@ xfs_log_force_umount( | |||
| 3678 | } | 3678 | } |
| 3679 | #endif | 3679 | #endif |
| 3680 | /* return non-zero if log IOERROR transition had already happened */ | 3680 | /* return non-zero if log IOERROR transition had already happened */ |
| 3681 | return (retval); | 3681 | return retval; |
| 3682 | } | 3682 | } |
| 3683 | 3683 | ||
| 3684 | STATIC int | 3684 | STATIC int |
| @@ -3692,8 +3692,8 @@ xlog_iclogs_empty(xlog_t *log) | |||
| 3692 | * any language. | 3692 | * any language. |
| 3693 | */ | 3693 | */ |
| 3694 | if (iclog->ic_header.h_num_logops) | 3694 | if (iclog->ic_header.h_num_logops) |
| 3695 | return(0); | 3695 | return 0; |
| 3696 | iclog = iclog->ic_next; | 3696 | iclog = iclog->ic_next; |
| 3697 | } while (iclog != log->l_iclog); | 3697 | } while (iclog != log->l_iclog); |
| 3698 | return(1); | 3698 | return 1; |
| 3699 | } | 3699 | } |
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 6088e14f84e3..62188ea392c7 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c | |||
| @@ -646,7 +646,7 @@ xfs_mountfs( | |||
| 646 | 646 | ||
| 647 | if (mp->m_sb_bp == NULL) { | 647 | if (mp->m_sb_bp == NULL) { |
| 648 | if ((error = xfs_readsb(mp))) { | 648 | if ((error = xfs_readsb(mp))) { |
| 649 | return (error); | 649 | return error; |
| 650 | } | 650 | } |
| 651 | } | 651 | } |
| 652 | xfs_mount_common(mp, sbp); | 652 | xfs_mount_common(mp, sbp); |
| @@ -889,7 +889,7 @@ xfs_mountfs( | |||
| 889 | * For client case we are done now | 889 | * For client case we are done now |
| 890 | */ | 890 | */ |
| 891 | if (mfsi_flags & XFS_MFSI_CLIENT) { | 891 | if (mfsi_flags & XFS_MFSI_CLIENT) { |
| 892 | return(0); | 892 | return 0; |
| 893 | } | 893 | } |
| 894 | 894 | ||
| 895 | /* | 895 | /* |
| @@ -1182,7 +1182,7 @@ xfs_unmountfs_writesb(xfs_mount_t *mp) | |||
| 1182 | xfs_fs_cmn_err(CE_ALERT, mp, "Superblock write error detected while unmounting. Filesystem may not be marked shared readonly"); | 1182 | xfs_fs_cmn_err(CE_ALERT, mp, "Superblock write error detected while unmounting. Filesystem may not be marked shared readonly"); |
| 1183 | } | 1183 | } |
| 1184 | xfs_buf_relse(sbp); | 1184 | xfs_buf_relse(sbp); |
| 1185 | return (error); | 1185 | return error; |
| 1186 | } | 1186 | } |
| 1187 | 1187 | ||
| 1188 | /* | 1188 | /* |
| @@ -1257,19 +1257,19 @@ xfs_mod_incore_sb_unlocked(xfs_mount_t *mp, xfs_sb_field_t field, | |||
| 1257 | lcounter += delta; | 1257 | lcounter += delta; |
| 1258 | if (lcounter < 0) { | 1258 | if (lcounter < 0) { |
| 1259 | ASSERT(0); | 1259 | ASSERT(0); |
| 1260 | return (XFS_ERROR(EINVAL)); | 1260 | return XFS_ERROR(EINVAL); |
| 1261 | } | 1261 | } |
| 1262 | mp->m_sb.sb_icount = lcounter; | 1262 | mp->m_sb.sb_icount = lcounter; |
| 1263 | return (0); | 1263 | return 0; |
| 1264 | case XFS_SBS_IFREE: | 1264 | case XFS_SBS_IFREE: |
| 1265 | lcounter = (long long)mp->m_sb.sb_ifree; | 1265 | lcounter = (long long)mp->m_sb.sb_ifree; |
| 1266 | lcounter += delta; | 1266 | lcounter += delta; |
| 1267 | if (lcounter < 0) { | 1267 | if (lcounter < 0) { |
| 1268 | ASSERT(0); | 1268 | ASSERT(0); |
| 1269 | return (XFS_ERROR(EINVAL)); | 1269 | return XFS_ERROR(EINVAL); |
| 1270 | } | 1270 | } |
| 1271 | mp->m_sb.sb_ifree = lcounter; | 1271 | mp->m_sb.sb_ifree = lcounter; |
| 1272 | return (0); | 1272 | return 0; |
| 1273 | case XFS_SBS_FDBLOCKS: | 1273 | case XFS_SBS_FDBLOCKS: |
| 1274 | 1274 | ||
| 1275 | lcounter = (long long)mp->m_sb.sb_fdblocks; | 1275 | lcounter = (long long)mp->m_sb.sb_fdblocks; |
| @@ -1296,101 +1296,101 @@ xfs_mod_incore_sb_unlocked(xfs_mount_t *mp, xfs_sb_field_t field, | |||
| 1296 | if (rsvd) { | 1296 | if (rsvd) { |
| 1297 | lcounter = (long long)mp->m_resblks_avail + delta; | 1297 | lcounter = (long long)mp->m_resblks_avail + delta; |
| 1298 | if (lcounter < 0) { | 1298 | if (lcounter < 0) { |
| 1299 | return (XFS_ERROR(ENOSPC)); | 1299 | return XFS_ERROR(ENOSPC); |
| 1300 | } | 1300 | } |
| 1301 | mp->m_resblks_avail = lcounter; | 1301 | mp->m_resblks_avail = lcounter; |
| 1302 | return (0); | 1302 | return 0; |
| 1303 | } else { /* not reserved */ | 1303 | } else { /* not reserved */ |
| 1304 | return (XFS_ERROR(ENOSPC)); | 1304 | return XFS_ERROR(ENOSPC); |
| 1305 | } | 1305 | } |
| 1306 | } | 1306 | } |
| 1307 | } | 1307 | } |
| 1308 | 1308 | ||
| 1309 | mp->m_sb.sb_fdblocks = lcounter; | 1309 | mp->m_sb.sb_fdblocks = lcounter; |
| 1310 | return (0); | 1310 | return 0; |
| 1311 | case XFS_SBS_FREXTENTS: | 1311 | case XFS_SBS_FREXTENTS: |
| 1312 | lcounter = (long long)mp->m_sb.sb_frextents; | 1312 | lcounter = (long long)mp->m_sb.sb_frextents; |
| 1313 | lcounter += delta; | 1313 | lcounter += delta; |
| 1314 | if (lcounter < 0) { | 1314 | if (lcounter < 0) { |
| 1315 | return (XFS_ERROR(ENOSPC)); | 1315 | return XFS_ERROR(ENOSPC); |
| 1316 | } | 1316 | } |
| 1317 | mp->m_sb.sb_frextents = lcounter; | 1317 | mp->m_sb.sb_frextents = lcounter; |
| 1318 | return (0); | 1318 | return 0; |
| 1319 | case XFS_SBS_DBLOCKS: | 1319 | case XFS_SBS_DBLOCKS: |
| 1320 | lcounter = (long long)mp->m_sb.sb_dblocks; | 1320 | lcounter = (long long)mp->m_sb.sb_dblocks; |
| 1321 | lcounter += delta; | 1321 | lcounter += delta; |
| 1322 | if (lcounter < 0) { | 1322 | if (lcounter < 0) { |
| 1323 | ASSERT(0); | 1323 | ASSERT(0); |
| 1324 | return (XFS_ERROR(EINVAL)); | 1324 | return XFS_ERROR(EINVAL); |
| 1325 | } | 1325 | } |
| 1326 | mp->m_sb.sb_dblocks = lcounter; | 1326 | mp->m_sb.sb_dblocks = lcounter; |
| 1327 | return (0); | 1327 | return 0; |
| 1328 | case XFS_SBS_AGCOUNT: | 1328 | case XFS_SBS_AGCOUNT: |
| 1329 | scounter = mp->m_sb.sb_agcount; | 1329 | scounter = mp->m_sb.sb_agcount; |
| 1330 | scounter += delta; | 1330 | scounter += delta; |
| 1331 | if (scounter < 0) { | 1331 | if (scounter < 0) { |
| 1332 | ASSERT(0); | 1332 | ASSERT(0); |
| 1333 | return (XFS_ERROR(EINVAL)); | 1333 | return XFS_ERROR(EINVAL); |
| 1334 | } | 1334 | } |
| 1335 | mp->m_sb.sb_agcount = scounter; | 1335 | mp->m_sb.sb_agcount = scounter; |
| 1336 | return (0); | 1336 | return 0; |
| 1337 | case XFS_SBS_IMAX_PCT: | 1337 | case XFS_SBS_IMAX_PCT: |
| 1338 | scounter = mp->m_sb.sb_imax_pct; | 1338 | scounter = mp->m_sb.sb_imax_pct; |
| 1339 | scounter += delta; | 1339 | scounter += delta; |
| 1340 | if (scounter < 0) { | 1340 | if (scounter < 0) { |
| 1341 | ASSERT(0); | 1341 | ASSERT(0); |
| 1342 | return (XFS_ERROR(EINVAL)); | 1342 | return XFS_ERROR(EINVAL); |
| 1343 | } | 1343 | } |
| 1344 | mp->m_sb.sb_imax_pct = scounter; | 1344 | mp->m_sb.sb_imax_pct = scounter; |
| 1345 | return (0); | 1345 | return 0; |
| 1346 | case XFS_SBS_REXTSIZE: | 1346 | case XFS_SBS_REXTSIZE: |
| 1347 | scounter = mp->m_sb.sb_rextsize; | 1347 | scounter = mp->m_sb.sb_rextsize; |
| 1348 | scounter += delta; | 1348 | scounter += delta; |
| 1349 | if (scounter < 0) { | 1349 | if (scounter < 0) { |
| 1350 | ASSERT(0); | 1350 | ASSERT(0); |
| 1351 | return (XFS_ERROR(EINVAL)); | 1351 | return XFS_ERROR(EINVAL); |
| 1352 | } | 1352 | } |
| 1353 | mp->m_sb.sb_rextsize = scounter; | 1353 | mp->m_sb.sb_rextsize = scounter; |
| 1354 | return (0); | 1354 | return 0; |
| 1355 | case XFS_SBS_RBMBLOCKS: | 1355 | case XFS_SBS_RBMBLOCKS: |
| 1356 | scounter = mp->m_sb.sb_rbmblocks; | 1356 | scounter = mp->m_sb.sb_rbmblocks; |
| 1357 | scounter += delta; | 1357 | scounter += delta; |
| 1358 | if (scounter < 0) { | 1358 | if (scounter < 0) { |
| 1359 | ASSERT(0); | 1359 | ASSERT(0); |
| 1360 | return (XFS_ERROR(EINVAL)); | 1360 | return XFS_ERROR(EINVAL); |
| 1361 | } | 1361 | } |
| 1362 | mp->m_sb.sb_rbmblocks = scounter; | 1362 | mp->m_sb.sb_rbmblocks = scounter; |
| 1363 | return (0); | 1363 | return 0; |
| 1364 | case XFS_SBS_RBLOCKS: | 1364 | case XFS_SBS_RBLOCKS: |
| 1365 | lcounter = (long long)mp->m_sb.sb_rblocks; | 1365 | lcounter = (long long)mp->m_sb.sb_rblocks; |
| 1366 | lcounter += delta; | 1366 | lcounter += delta; |
| 1367 | if (lcounter < 0) { | 1367 | if (lcounter < 0) { |
| 1368 | ASSERT(0); | 1368 | ASSERT(0); |
| 1369 | return (XFS_ERROR(EINVAL)); | 1369 | return XFS_ERROR(EINVAL); |
| 1370 | } | 1370 | } |
| 1371 | mp->m_sb.sb_rblocks = lcounter; | 1371 | mp->m_sb.sb_rblocks = lcounter; |
| 1372 | return (0); | 1372 | return 0; |
| 1373 | case XFS_SBS_REXTENTS: | 1373 | case XFS_SBS_REXTENTS: |
| 1374 | lcounter = (long long)mp->m_sb.sb_rextents; | 1374 | lcounter = (long long)mp->m_sb.sb_rextents; |
| 1375 | lcounter += delta; | 1375 | lcounter += delta; |
| 1376 | if (lcounter < 0) { | 1376 | if (lcounter < 0) { |
| 1377 | ASSERT(0); | 1377 | ASSERT(0); |
| 1378 | return (XFS_ERROR(EINVAL)); | 1378 | return XFS_ERROR(EINVAL); |
| 1379 | } | 1379 | } |
| 1380 | mp->m_sb.sb_rextents = lcounter; | 1380 | mp->m_sb.sb_rextents = lcounter; |
| 1381 | return (0); | 1381 | return 0; |
| 1382 | case XFS_SBS_REXTSLOG: | 1382 | case XFS_SBS_REXTSLOG: |
| 1383 | scounter = mp->m_sb.sb_rextslog; | 1383 | scounter = mp->m_sb.sb_rextslog; |
| 1384 | scounter += delta; | 1384 | scounter += delta; |
| 1385 | if (scounter < 0) { | 1385 | if (scounter < 0) { |
| 1386 | ASSERT(0); | 1386 | ASSERT(0); |
| 1387 | return (XFS_ERROR(EINVAL)); | 1387 | return XFS_ERROR(EINVAL); |
| 1388 | } | 1388 | } |
| 1389 | mp->m_sb.sb_rextslog = scounter; | 1389 | mp->m_sb.sb_rextslog = scounter; |
| 1390 | return (0); | 1390 | return 0; |
| 1391 | default: | 1391 | default: |
| 1392 | ASSERT(0); | 1392 | ASSERT(0); |
| 1393 | return (XFS_ERROR(EINVAL)); | 1393 | return XFS_ERROR(EINVAL); |
| 1394 | } | 1394 | } |
| 1395 | } | 1395 | } |
| 1396 | 1396 | ||
| @@ -1409,7 +1409,7 @@ xfs_mod_incore_sb(xfs_mount_t *mp, xfs_sb_field_t field, int delta, int rsvd) | |||
| 1409 | s = XFS_SB_LOCK(mp); | 1409 | s = XFS_SB_LOCK(mp); |
| 1410 | status = xfs_mod_incore_sb_unlocked(mp, field, delta, rsvd); | 1410 | status = xfs_mod_incore_sb_unlocked(mp, field, delta, rsvd); |
| 1411 | XFS_SB_UNLOCK(mp, s); | 1411 | XFS_SB_UNLOCK(mp, s); |
| 1412 | return (status); | 1412 | return status; |
| 1413 | } | 1413 | } |
| 1414 | 1414 | ||
| 1415 | /* | 1415 | /* |
| @@ -1470,7 +1470,7 @@ xfs_mod_incore_sb_batch(xfs_mount_t *mp, xfs_mod_sb_t *msb, uint nmsb, int rsvd) | |||
| 1470 | } | 1470 | } |
| 1471 | } | 1471 | } |
| 1472 | XFS_SB_UNLOCK(mp, s); | 1472 | XFS_SB_UNLOCK(mp, s); |
| 1473 | return (status); | 1473 | return status; |
| 1474 | } | 1474 | } |
| 1475 | 1475 | ||
| 1476 | /* | 1476 | /* |
| @@ -1500,7 +1500,7 @@ xfs_getsb( | |||
| 1500 | } | 1500 | } |
| 1501 | XFS_BUF_HOLD(bp); | 1501 | XFS_BUF_HOLD(bp); |
| 1502 | ASSERT(XFS_BUF_ISDONE(bp)); | 1502 | ASSERT(XFS_BUF_ISDONE(bp)); |
| 1503 | return (bp); | 1503 | return bp; |
| 1504 | } | 1504 | } |
| 1505 | 1505 | ||
| 1506 | /* | 1506 | /* |
diff --git a/fs/xfs/xfs_trans_item.c b/fs/xfs/xfs_trans_item.c index 486147ef0e3d..1117d600d741 100644 --- a/fs/xfs/xfs_trans_item.c +++ b/fs/xfs/xfs_trans_item.c | |||
| @@ -78,7 +78,7 @@ xfs_trans_add_item(xfs_trans_t *tp, xfs_log_item_t *lip) | |||
| 78 | lidp->lid_size = 0; | 78 | lidp->lid_size = 0; |
| 79 | lip->li_desc = lidp; | 79 | lip->li_desc = lidp; |
| 80 | lip->li_mountp = tp->t_mountp; | 80 | lip->li_mountp = tp->t_mountp; |
| 81 | return (lidp); | 81 | return lidp; |
| 82 | } | 82 | } |
| 83 | 83 | ||
| 84 | /* | 84 | /* |
| @@ -119,7 +119,7 @@ xfs_trans_add_item(xfs_trans_t *tp, xfs_log_item_t *lip) | |||
| 119 | lidp->lid_size = 0; | 119 | lidp->lid_size = 0; |
| 120 | lip->li_desc = lidp; | 120 | lip->li_desc = lidp; |
| 121 | lip->li_mountp = tp->t_mountp; | 121 | lip->li_mountp = tp->t_mountp; |
| 122 | return (lidp); | 122 | return lidp; |
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | /* | 125 | /* |
| @@ -180,7 +180,7 @@ xfs_trans_find_item(xfs_trans_t *tp, xfs_log_item_t *lip) | |||
| 180 | { | 180 | { |
| 181 | ASSERT(lip->li_desc != NULL); | 181 | ASSERT(lip->li_desc != NULL); |
| 182 | 182 | ||
| 183 | return (lip->li_desc); | 183 | return lip->li_desc; |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | 186 | ||
| @@ -219,10 +219,10 @@ xfs_trans_first_item(xfs_trans_t *tp) | |||
| 219 | continue; | 219 | continue; |
| 220 | } | 220 | } |
| 221 | 221 | ||
| 222 | return (XFS_LIC_SLOT(licp, i)); | 222 | return XFS_LIC_SLOT(licp, i); |
| 223 | } | 223 | } |
| 224 | cmn_err(CE_WARN, "xfs_trans_first_item() -- no first item"); | 224 | cmn_err(CE_WARN, "xfs_trans_first_item() -- no first item"); |
| 225 | return(NULL); | 225 | return NULL; |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | 228 | ||
| @@ -252,7 +252,7 @@ xfs_trans_next_item(xfs_trans_t *tp, xfs_log_item_desc_t *lidp) | |||
| 252 | continue; | 252 | continue; |
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | return (XFS_LIC_SLOT(licp, i)); | 255 | return XFS_LIC_SLOT(licp, i); |
| 256 | } | 256 | } |
| 257 | 257 | ||
| 258 | /* | 258 | /* |
| @@ -261,7 +261,7 @@ xfs_trans_next_item(xfs_trans_t *tp, xfs_log_item_desc_t *lidp) | |||
| 261 | * If there is no next chunk, return NULL. | 261 | * If there is no next chunk, return NULL. |
| 262 | */ | 262 | */ |
| 263 | if (licp->lic_next == NULL) { | 263 | if (licp->lic_next == NULL) { |
| 264 | return (NULL); | 264 | return NULL; |
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | licp = licp->lic_next; | 267 | licp = licp->lic_next; |
| @@ -271,7 +271,7 @@ xfs_trans_next_item(xfs_trans_t *tp, xfs_log_item_desc_t *lidp) | |||
| 271 | continue; | 271 | continue; |
| 272 | } | 272 | } |
| 273 | 273 | ||
| 274 | return (XFS_LIC_SLOT(licp, i)); | 274 | return XFS_LIC_SLOT(licp, i); |
| 275 | } | 275 | } |
| 276 | ASSERT(0); | 276 | ASSERT(0); |
| 277 | /* NOTREACHED */ | 277 | /* NOTREACHED */ |
| @@ -425,7 +425,7 @@ xfs_trans_unlock_chunk( | |||
| 425 | } | 425 | } |
| 426 | } | 426 | } |
| 427 | 427 | ||
| 428 | return (freed); | 428 | return freed; |
| 429 | } | 429 | } |
| 430 | 430 | ||
| 431 | 431 | ||
| @@ -478,7 +478,7 @@ xfs_trans_add_busy(xfs_trans_t *tp, xfs_agnumber_t ag, xfs_extlen_t idx) | |||
| 478 | */ | 478 | */ |
| 479 | lbsp->lbc_ag = ag; | 479 | lbsp->lbc_ag = ag; |
| 480 | lbsp->lbc_idx = idx; | 480 | lbsp->lbc_idx = idx; |
| 481 | return (lbsp); | 481 | return lbsp; |
| 482 | } | 482 | } |
| 483 | 483 | ||
| 484 | /* | 484 | /* |
| @@ -512,7 +512,7 @@ xfs_trans_add_busy(xfs_trans_t *tp, xfs_agnumber_t ag, xfs_extlen_t idx) | |||
| 512 | tp->t_busy_free--; | 512 | tp->t_busy_free--; |
| 513 | lbsp->lbc_ag = ag; | 513 | lbsp->lbc_ag = ag; |
| 514 | lbsp->lbc_idx = idx; | 514 | lbsp->lbc_idx = idx; |
| 515 | return (lbsp); | 515 | return lbsp; |
| 516 | } | 516 | } |
| 517 | 517 | ||
| 518 | 518 | ||
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 8076cc981e11..eaab355f5a89 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
| @@ -338,7 +338,7 @@ xfs_setattr( | |||
| 338 | code = XFS_QM_DQVOPALLOC(mp, ip, uid, gid, projid, qflags, | 338 | code = XFS_QM_DQVOPALLOC(mp, ip, uid, gid, projid, qflags, |
| 339 | &udqp, &gdqp); | 339 | &udqp, &gdqp); |
| 340 | if (code) | 340 | if (code) |
| 341 | return (code); | 341 | return code; |
| 342 | } | 342 | } |
| 343 | 343 | ||
| 344 | /* | 344 | /* |
| @@ -1027,11 +1027,8 @@ xfs_readlink( | |||
| 1027 | 1027 | ||
| 1028 | } | 1028 | } |
| 1029 | 1029 | ||
| 1030 | |||
| 1031 | error_return: | 1030 | error_return: |
| 1032 | |||
| 1033 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | 1031 | xfs_iunlock(ip, XFS_ILOCK_SHARED); |
| 1034 | |||
| 1035 | return error; | 1032 | return error; |
| 1036 | } | 1033 | } |
| 1037 | 1034 | ||
| @@ -1206,7 +1203,7 @@ xfs_inactive_free_eofblocks( | |||
| 1206 | last_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp)); | 1203 | last_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp)); |
| 1207 | map_len = last_fsb - end_fsb; | 1204 | map_len = last_fsb - end_fsb; |
| 1208 | if (map_len <= 0) | 1205 | if (map_len <= 0) |
| 1209 | return (0); | 1206 | return 0; |
| 1210 | 1207 | ||
| 1211 | nimaps = 1; | 1208 | nimaps = 1; |
| 1212 | xfs_ilock(ip, XFS_ILOCK_SHARED); | 1209 | xfs_ilock(ip, XFS_ILOCK_SHARED); |
| @@ -1221,7 +1218,7 @@ xfs_inactive_free_eofblocks( | |||
| 1221 | * Attach the dquots to the inode up front. | 1218 | * Attach the dquots to the inode up front. |
| 1222 | */ | 1219 | */ |
| 1223 | if ((error = XFS_QM_DQATTACH(mp, ip, 0))) | 1220 | if ((error = XFS_QM_DQATTACH(mp, ip, 0))) |
| 1224 | return (error); | 1221 | return error; |
| 1225 | 1222 | ||
| 1226 | /* | 1223 | /* |
| 1227 | * There are blocks after the end of file. | 1224 | * There are blocks after the end of file. |
| @@ -1249,7 +1246,7 @@ xfs_inactive_free_eofblocks( | |||
| 1249 | ASSERT(XFS_FORCED_SHUTDOWN(mp)); | 1246 | ASSERT(XFS_FORCED_SHUTDOWN(mp)); |
| 1250 | xfs_trans_cancel(tp, 0); | 1247 | xfs_trans_cancel(tp, 0); |
| 1251 | xfs_iunlock(ip, XFS_IOLOCK_EXCL); | 1248 | xfs_iunlock(ip, XFS_IOLOCK_EXCL); |
| 1252 | return (error); | 1249 | return error; |
| 1253 | } | 1250 | } |
| 1254 | 1251 | ||
| 1255 | xfs_ilock(ip, XFS_ILOCK_EXCL); | 1252 | xfs_ilock(ip, XFS_ILOCK_EXCL); |
| @@ -1277,7 +1274,7 @@ xfs_inactive_free_eofblocks( | |||
| 1277 | } | 1274 | } |
| 1278 | xfs_iunlock(ip, XFS_IOLOCK_EXCL | XFS_ILOCK_EXCL); | 1275 | xfs_iunlock(ip, XFS_IOLOCK_EXCL | XFS_ILOCK_EXCL); |
| 1279 | } | 1276 | } |
| 1280 | return (error); | 1277 | return error; |
| 1281 | } | 1278 | } |
| 1282 | 1279 | ||
| 1283 | /* | 1280 | /* |
| @@ -1455,7 +1452,7 @@ xfs_inactive_symlink_local( | |||
| 1455 | if (error) { | 1452 | if (error) { |
| 1456 | xfs_trans_cancel(*tpp, 0); | 1453 | xfs_trans_cancel(*tpp, 0); |
| 1457 | *tpp = NULL; | 1454 | *tpp = NULL; |
| 1458 | return (error); | 1455 | return error; |
| 1459 | } | 1456 | } |
| 1460 | xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); | 1457 | xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); |
| 1461 | 1458 | ||
| @@ -1468,7 +1465,7 @@ xfs_inactive_symlink_local( | |||
| 1468 | XFS_DATA_FORK); | 1465 | XFS_DATA_FORK); |
| 1469 | ASSERT(ip->i_df.if_bytes == 0); | 1466 | ASSERT(ip->i_df.if_bytes == 0); |
| 1470 | } | 1467 | } |
| 1471 | return (0); | 1468 | return 0; |
| 1472 | } | 1469 | } |
| 1473 | 1470 | ||
| 1474 | /* | 1471 | /* |
| @@ -1494,7 +1491,7 @@ xfs_inactive_attrs( | |||
| 1494 | if (error) { | 1491 | if (error) { |
| 1495 | *tpp = NULL; | 1492 | *tpp = NULL; |
| 1496 | xfs_iunlock(ip, XFS_IOLOCK_EXCL); | 1493 | xfs_iunlock(ip, XFS_IOLOCK_EXCL); |
| 1497 | return (error); /* goto out*/ | 1494 | return error; /* goto out */ |
| 1498 | } | 1495 | } |
| 1499 | 1496 | ||
| 1500 | tp = xfs_trans_alloc(mp, XFS_TRANS_INACTIVE); | 1497 | tp = xfs_trans_alloc(mp, XFS_TRANS_INACTIVE); |
| @@ -1507,7 +1504,7 @@ xfs_inactive_attrs( | |||
| 1507 | xfs_trans_cancel(tp, 0); | 1504 | xfs_trans_cancel(tp, 0); |
| 1508 | *tpp = NULL; | 1505 | *tpp = NULL; |
| 1509 | xfs_iunlock(ip, XFS_IOLOCK_EXCL); | 1506 | xfs_iunlock(ip, XFS_IOLOCK_EXCL); |
| 1510 | return (error); | 1507 | return error; |
| 1511 | } | 1508 | } |
| 1512 | 1509 | ||
| 1513 | xfs_ilock(ip, XFS_ILOCK_EXCL); | 1510 | xfs_ilock(ip, XFS_ILOCK_EXCL); |
| @@ -1518,7 +1515,7 @@ xfs_inactive_attrs( | |||
| 1518 | ASSERT(ip->i_d.di_anextents == 0); | 1515 | ASSERT(ip->i_d.di_anextents == 0); |
| 1519 | 1516 | ||
| 1520 | *tpp = tp; | 1517 | *tpp = tp; |
| 1521 | return (0); | 1518 | return 0; |
| 1522 | } | 1519 | } |
| 1523 | 1520 | ||
| 1524 | STATIC int | 1521 | STATIC int |
| @@ -1557,7 +1554,7 @@ xfs_release( | |||
| 1557 | (!(ip->i_d.di_flags & | 1554 | (!(ip->i_d.di_flags & |
| 1558 | (XFS_DIFLAG_PREALLOC | XFS_DIFLAG_APPEND)))) { | 1555 | (XFS_DIFLAG_PREALLOC | XFS_DIFLAG_APPEND)))) { |
| 1559 | if ((error = xfs_inactive_free_eofblocks(mp, ip))) | 1556 | if ((error = xfs_inactive_free_eofblocks(mp, ip))) |
| 1560 | return (error); | 1557 | return error; |
| 1561 | /* Update linux inode block count after free above */ | 1558 | /* Update linux inode block count after free above */ |
| 1562 | LINVFS_GET_IP(vp)->i_blocks = XFS_FSB_TO_BB(mp, | 1559 | LINVFS_GET_IP(vp)->i_blocks = XFS_FSB_TO_BB(mp, |
| 1563 | ip->i_d.di_nblocks + ip->i_delayed_blks); | 1560 | ip->i_d.di_nblocks + ip->i_delayed_blks); |
| @@ -1638,7 +1635,7 @@ xfs_inactive( | |||
| 1638 | (XFS_DIFLAG_PREALLOC | XFS_DIFLAG_APPEND)) || | 1635 | (XFS_DIFLAG_PREALLOC | XFS_DIFLAG_APPEND)) || |
| 1639 | (ip->i_delayed_blks != 0)))) { | 1636 | (ip->i_delayed_blks != 0)))) { |
| 1640 | if ((error = xfs_inactive_free_eofblocks(mp, ip))) | 1637 | if ((error = xfs_inactive_free_eofblocks(mp, ip))) |
| 1641 | return (VN_INACTIVE_CACHE); | 1638 | return VN_INACTIVE_CACHE; |
| 1642 | /* Update linux inode block count after free above */ | 1639 | /* Update linux inode block count after free above */ |
| 1643 | LINVFS_GET_IP(vp)->i_blocks = XFS_FSB_TO_BB(mp, | 1640 | LINVFS_GET_IP(vp)->i_blocks = XFS_FSB_TO_BB(mp, |
| 1644 | ip->i_d.di_nblocks + ip->i_delayed_blks); | 1641 | ip->i_d.di_nblocks + ip->i_delayed_blks); |
| @@ -1649,7 +1646,7 @@ xfs_inactive( | |||
| 1649 | ASSERT(ip->i_d.di_nlink == 0); | 1646 | ASSERT(ip->i_d.di_nlink == 0); |
| 1650 | 1647 | ||
| 1651 | if ((error = XFS_QM_DQATTACH(mp, ip, 0))) | 1648 | if ((error = XFS_QM_DQATTACH(mp, ip, 0))) |
| 1652 | return (VN_INACTIVE_CACHE); | 1649 | return VN_INACTIVE_CACHE; |
| 1653 | 1650 | ||
| 1654 | tp = xfs_trans_alloc(mp, XFS_TRANS_INACTIVE); | 1651 | tp = xfs_trans_alloc(mp, XFS_TRANS_INACTIVE); |
| 1655 | if (truncate) { | 1652 | if (truncate) { |
| @@ -1672,7 +1669,7 @@ xfs_inactive( | |||
| 1672 | ASSERT(XFS_FORCED_SHUTDOWN(mp)); | 1669 | ASSERT(XFS_FORCED_SHUTDOWN(mp)); |
| 1673 | xfs_trans_cancel(tp, 0); | 1670 | xfs_trans_cancel(tp, 0); |
| 1674 | xfs_iunlock(ip, XFS_IOLOCK_EXCL); | 1671 | xfs_iunlock(ip, XFS_IOLOCK_EXCL); |
| 1675 | return (VN_INACTIVE_CACHE); | 1672 | return VN_INACTIVE_CACHE; |
| 1676 | } | 1673 | } |
| 1677 | 1674 | ||
| 1678 | xfs_ilock(ip, XFS_ILOCK_EXCL); | 1675 | xfs_ilock(ip, XFS_ILOCK_EXCL); |
| @@ -1693,7 +1690,7 @@ xfs_inactive( | |||
| 1693 | xfs_trans_cancel(tp, | 1690 | xfs_trans_cancel(tp, |
| 1694 | XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT); | 1691 | XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT); |
| 1695 | xfs_iunlock(ip, XFS_IOLOCK_EXCL | XFS_ILOCK_EXCL); | 1692 | xfs_iunlock(ip, XFS_IOLOCK_EXCL | XFS_ILOCK_EXCL); |
| 1696 | return (VN_INACTIVE_CACHE); | 1693 | return VN_INACTIVE_CACHE; |
| 1697 | } | 1694 | } |
| 1698 | } else if ((ip->i_d.di_mode & S_IFMT) == S_IFLNK) { | 1695 | } else if ((ip->i_d.di_mode & S_IFMT) == S_IFLNK) { |
| 1699 | 1696 | ||
| @@ -1707,7 +1704,7 @@ xfs_inactive( | |||
| 1707 | 1704 | ||
| 1708 | if (error) { | 1705 | if (error) { |
| 1709 | ASSERT(tp == NULL); | 1706 | ASSERT(tp == NULL); |
| 1710 | return (VN_INACTIVE_CACHE); | 1707 | return VN_INACTIVE_CACHE; |
| 1711 | } | 1708 | } |
| 1712 | 1709 | ||
| 1713 | xfs_trans_ijoin(tp, ip, XFS_IOLOCK_EXCL | XFS_ILOCK_EXCL); | 1710 | xfs_trans_ijoin(tp, ip, XFS_IOLOCK_EXCL | XFS_ILOCK_EXCL); |
| @@ -1720,7 +1717,7 @@ xfs_inactive( | |||
| 1720 | if (error) { | 1717 | if (error) { |
| 1721 | ASSERT(XFS_FORCED_SHUTDOWN(mp)); | 1718 | ASSERT(XFS_FORCED_SHUTDOWN(mp)); |
| 1722 | xfs_trans_cancel(tp, 0); | 1719 | xfs_trans_cancel(tp, 0); |
| 1723 | return (VN_INACTIVE_CACHE); | 1720 | return VN_INACTIVE_CACHE; |
| 1724 | } | 1721 | } |
| 1725 | 1722 | ||
| 1726 | xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); | 1723 | xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); |
| @@ -1742,7 +1739,7 @@ xfs_inactive( | |||
| 1742 | * cancelled, and the inode is unlocked. Just get out. | 1739 | * cancelled, and the inode is unlocked. Just get out. |
| 1743 | */ | 1740 | */ |
| 1744 | if (error) | 1741 | if (error) |
| 1745 | return (VN_INACTIVE_CACHE); | 1742 | return VN_INACTIVE_CACHE; |
| 1746 | } else if (ip->i_afp) { | 1743 | } else if (ip->i_afp) { |
| 1747 | xfs_idestroy_fork(ip, XFS_ATTR_FORK); | 1744 | xfs_idestroy_fork(ip, XFS_ATTR_FORK); |
| 1748 | } | 1745 | } |
| @@ -2049,8 +2046,8 @@ std_return: | |||
| 2049 | abort_return: | 2046 | abort_return: |
| 2050 | cancel_flags |= XFS_TRANS_ABORT; | 2047 | cancel_flags |= XFS_TRANS_ABORT; |
| 2051 | /* FALLTHROUGH */ | 2048 | /* FALLTHROUGH */ |
| 2052 | error_return: | ||
| 2053 | 2049 | ||
| 2050 | error_return: | ||
| 2054 | if (tp != NULL) | 2051 | if (tp != NULL) |
| 2055 | xfs_trans_cancel(tp, cancel_flags); | 2052 | xfs_trans_cancel(tp, cancel_flags); |
| 2056 | 2053 | ||
| @@ -2724,9 +2721,9 @@ std_return: | |||
| 2724 | abort_return: | 2721 | abort_return: |
| 2725 | cancel_flags |= XFS_TRANS_ABORT; | 2722 | cancel_flags |= XFS_TRANS_ABORT; |
| 2726 | /* FALLTHROUGH */ | 2723 | /* FALLTHROUGH */ |
| 2724 | |||
| 2727 | error_return: | 2725 | error_return: |
| 2728 | xfs_trans_cancel(tp, cancel_flags); | 2726 | xfs_trans_cancel(tp, cancel_flags); |
| 2729 | |||
| 2730 | goto std_return; | 2727 | goto std_return; |
| 2731 | } | 2728 | } |
| 2732 | /* | 2729 | /* |
| @@ -3199,10 +3196,12 @@ std_return: | |||
| 3199 | } | 3196 | } |
| 3200 | return error; | 3197 | return error; |
| 3201 | 3198 | ||
| 3202 | error1: | 3199 | error1: |
| 3203 | xfs_bmap_cancel(&free_list); | 3200 | xfs_bmap_cancel(&free_list); |
| 3204 | cancel_flags |= XFS_TRANS_ABORT; | 3201 | cancel_flags |= XFS_TRANS_ABORT; |
| 3205 | error_return: | 3202 | /* FALLTHROUGH */ |
| 3203 | |||
| 3204 | error_return: | ||
| 3206 | xfs_trans_cancel(tp, cancel_flags); | 3205 | xfs_trans_cancel(tp, cancel_flags); |
| 3207 | goto std_return; | 3206 | goto std_return; |
| 3208 | } | 3207 | } |
| @@ -3618,9 +3617,9 @@ xfs_rwlock( | |||
| 3618 | if (locktype == VRWLOCK_WRITE) { | 3617 | if (locktype == VRWLOCK_WRITE) { |
| 3619 | xfs_ilock(ip, XFS_IOLOCK_EXCL); | 3618 | xfs_ilock(ip, XFS_IOLOCK_EXCL); |
| 3620 | } else if (locktype == VRWLOCK_TRY_READ) { | 3619 | } else if (locktype == VRWLOCK_TRY_READ) { |
| 3621 | return (xfs_ilock_nowait(ip, XFS_IOLOCK_SHARED)); | 3620 | return xfs_ilock_nowait(ip, XFS_IOLOCK_SHARED); |
| 3622 | } else if (locktype == VRWLOCK_TRY_WRITE) { | 3621 | } else if (locktype == VRWLOCK_TRY_WRITE) { |
| 3623 | return (xfs_ilock_nowait(ip, XFS_IOLOCK_EXCL)); | 3622 | return xfs_ilock_nowait(ip, XFS_IOLOCK_EXCL); |
| 3624 | } else { | 3623 | } else { |
| 3625 | ASSERT((locktype == VRWLOCK_READ) || | 3624 | ASSERT((locktype == VRWLOCK_READ) || |
| 3626 | (locktype == VRWLOCK_WRITE_DIRECT)); | 3625 | (locktype == VRWLOCK_WRITE_DIRECT)); |
| @@ -3868,7 +3867,7 @@ xfs_finish_reclaim( | |||
| 3868 | xfs_ifunlock(ip); | 3867 | xfs_ifunlock(ip); |
| 3869 | xfs_iunlock(ip, XFS_ILOCK_EXCL); | 3868 | xfs_iunlock(ip, XFS_ILOCK_EXCL); |
| 3870 | } | 3869 | } |
| 3871 | return(1); | 3870 | return 1; |
| 3872 | } | 3871 | } |
| 3873 | ip->i_flags |= XFS_IRECLAIM; | 3872 | ip->i_flags |= XFS_IRECLAIM; |
| 3874 | write_unlock(&ih->ih_lock); | 3873 | write_unlock(&ih->ih_lock); |
| @@ -4045,7 +4044,7 @@ xfs_alloc_file_space( | |||
| 4045 | offset, end_dmi_offset - offset, | 4044 | offset, end_dmi_offset - offset, |
| 4046 | 0, NULL); | 4045 | 0, NULL); |
| 4047 | if (error) | 4046 | if (error) |
| 4048 | return(error); | 4047 | return error; |
| 4049 | } | 4048 | } |
| 4050 | 4049 | ||
| 4051 | /* | 4050 | /* |
| @@ -4305,7 +4304,7 @@ xfs_free_file_space( | |||
| 4305 | offset, end_dmi_offset - offset, | 4304 | offset, end_dmi_offset - offset, |
| 4306 | AT_DELAY_FLAG(attr_flags), NULL); | 4305 | AT_DELAY_FLAG(attr_flags), NULL); |
| 4307 | if (error) | 4306 | if (error) |
| 4308 | return(error); | 4307 | return error; |
| 4309 | } | 4308 | } |
| 4310 | 4309 | ||
| 4311 | ASSERT(attr_flags & ATTR_NOLOCK ? attr_flags & ATTR_DMI : 1); | 4310 | ASSERT(attr_flags & ATTR_NOLOCK ? attr_flags & ATTR_DMI : 1); |
