diff options
author | David S. Miller <davem@davemloft.net> | 2014-07-30 16:25:49 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-07-30 16:25:49 -0400 |
commit | f139c74a8df071217dcd63f3ef06ae7be7071c4d (patch) | |
tree | 5711f695577a18a06dbcd0101956e97b388ffa1a /fs | |
parent | bd695a5f0ccf7b38982c426d86055ff3591c9b5b (diff) | |
parent | 26bcd8b72563b4c54892c4c2a409f6656fb8ae8b (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/afs/main.c | 4 | ||||
-rw-r--r-- | fs/coredump.c | 2 | ||||
-rw-r--r-- | fs/direct-io.c | 14 | ||||
-rw-r--r-- | fs/fuse/inode.c | 5 | ||||
-rw-r--r-- | fs/namei.c | 3 | ||||
-rw-r--r-- | fs/nfsd/nfs4xdr.c | 4 | ||||
-rw-r--r-- | fs/xattr.c | 2 |
7 files changed, 17 insertions, 17 deletions
diff --git a/fs/afs/main.c b/fs/afs/main.c index 42dd2e499ed8..35de0c04729f 100644 --- a/fs/afs/main.c +++ b/fs/afs/main.c | |||
@@ -55,13 +55,13 @@ static int __init afs_get_client_UUID(void) | |||
55 | afs_uuid.time_low = uuidtime; | 55 | afs_uuid.time_low = uuidtime; |
56 | afs_uuid.time_mid = uuidtime >> 32; | 56 | afs_uuid.time_mid = uuidtime >> 32; |
57 | afs_uuid.time_hi_and_version = (uuidtime >> 48) & AFS_UUID_TIMEHI_MASK; | 57 | afs_uuid.time_hi_and_version = (uuidtime >> 48) & AFS_UUID_TIMEHI_MASK; |
58 | afs_uuid.time_hi_and_version = AFS_UUID_VERSION_TIME; | 58 | afs_uuid.time_hi_and_version |= AFS_UUID_VERSION_TIME; |
59 | 59 | ||
60 | get_random_bytes(&clockseq, 2); | 60 | get_random_bytes(&clockseq, 2); |
61 | afs_uuid.clock_seq_low = clockseq; | 61 | afs_uuid.clock_seq_low = clockseq; |
62 | afs_uuid.clock_seq_hi_and_reserved = | 62 | afs_uuid.clock_seq_hi_and_reserved = |
63 | (clockseq >> 8) & AFS_UUID_CLOCKHI_MASK; | 63 | (clockseq >> 8) & AFS_UUID_CLOCKHI_MASK; |
64 | afs_uuid.clock_seq_hi_and_reserved = AFS_UUID_VARIANT_STD; | 64 | afs_uuid.clock_seq_hi_and_reserved |= AFS_UUID_VARIANT_STD; |
65 | 65 | ||
66 | _debug("AFS UUID: %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", | 66 | _debug("AFS UUID: %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", |
67 | afs_uuid.time_low, | 67 | afs_uuid.time_low, |
diff --git a/fs/coredump.c b/fs/coredump.c index 0b2528fb640e..a93f7e6ea4cf 100644 --- a/fs/coredump.c +++ b/fs/coredump.c | |||
@@ -306,7 +306,7 @@ static int zap_threads(struct task_struct *tsk, struct mm_struct *mm, | |||
306 | if (unlikely(nr < 0)) | 306 | if (unlikely(nr < 0)) |
307 | return nr; | 307 | return nr; |
308 | 308 | ||
309 | tsk->flags = PF_DUMPCORE; | 309 | tsk->flags |= PF_DUMPCORE; |
310 | if (atomic_read(&mm->mm_users) == nr + 1) | 310 | if (atomic_read(&mm->mm_users) == nr + 1) |
311 | goto done; | 311 | goto done; |
312 | /* | 312 | /* |
diff --git a/fs/direct-io.c b/fs/direct-io.c index 98040ba388ac..194d0d122cae 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c | |||
@@ -198,9 +198,8 @@ static inline int dio_refill_pages(struct dio *dio, struct dio_submit *sdio) | |||
198 | * L1 cache. | 198 | * L1 cache. |
199 | */ | 199 | */ |
200 | static inline struct page *dio_get_page(struct dio *dio, | 200 | static inline struct page *dio_get_page(struct dio *dio, |
201 | struct dio_submit *sdio, size_t *from, size_t *to) | 201 | struct dio_submit *sdio) |
202 | { | 202 | { |
203 | int n; | ||
204 | if (dio_pages_present(sdio) == 0) { | 203 | if (dio_pages_present(sdio) == 0) { |
205 | int ret; | 204 | int ret; |
206 | 205 | ||
@@ -209,10 +208,7 @@ static inline struct page *dio_get_page(struct dio *dio, | |||
209 | return ERR_PTR(ret); | 208 | return ERR_PTR(ret); |
210 | BUG_ON(dio_pages_present(sdio) == 0); | 209 | BUG_ON(dio_pages_present(sdio) == 0); |
211 | } | 210 | } |
212 | n = sdio->head++; | 211 | return dio->pages[sdio->head]; |
213 | *from = n ? 0 : sdio->from; | ||
214 | *to = (n == sdio->tail - 1) ? sdio->to : PAGE_SIZE; | ||
215 | return dio->pages[n]; | ||
216 | } | 212 | } |
217 | 213 | ||
218 | /** | 214 | /** |
@@ -911,11 +907,15 @@ static int do_direct_IO(struct dio *dio, struct dio_submit *sdio, | |||
911 | while (sdio->block_in_file < sdio->final_block_in_request) { | 907 | while (sdio->block_in_file < sdio->final_block_in_request) { |
912 | struct page *page; | 908 | struct page *page; |
913 | size_t from, to; | 909 | size_t from, to; |
914 | page = dio_get_page(dio, sdio, &from, &to); | 910 | |
911 | page = dio_get_page(dio, sdio); | ||
915 | if (IS_ERR(page)) { | 912 | if (IS_ERR(page)) { |
916 | ret = PTR_ERR(page); | 913 | ret = PTR_ERR(page); |
917 | goto out; | 914 | goto out; |
918 | } | 915 | } |
916 | from = sdio->head ? 0 : sdio->from; | ||
917 | to = (sdio->head == sdio->tail - 1) ? sdio->to : PAGE_SIZE; | ||
918 | sdio->head++; | ||
919 | 919 | ||
920 | while (from < to) { | 920 | while (from < to) { |
921 | unsigned this_chunk_bytes; /* # of bytes mapped */ | 921 | unsigned this_chunk_bytes; /* # of bytes mapped */ |
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 8474028d7848..03246cd9d47a 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c | |||
@@ -907,9 +907,6 @@ static void process_init_reply(struct fuse_conn *fc, struct fuse_req *req) | |||
907 | fc->writeback_cache = 1; | 907 | fc->writeback_cache = 1; |
908 | if (arg->time_gran && arg->time_gran <= 1000000000) | 908 | if (arg->time_gran && arg->time_gran <= 1000000000) |
909 | fc->sb->s_time_gran = arg->time_gran; | 909 | fc->sb->s_time_gran = arg->time_gran; |
910 | else | ||
911 | fc->sb->s_time_gran = 1000000000; | ||
912 | |||
913 | } else { | 910 | } else { |
914 | ra_pages = fc->max_read / PAGE_CACHE_SIZE; | 911 | ra_pages = fc->max_read / PAGE_CACHE_SIZE; |
915 | fc->no_lock = 1; | 912 | fc->no_lock = 1; |
@@ -938,7 +935,7 @@ static void fuse_send_init(struct fuse_conn *fc, struct fuse_req *req) | |||
938 | FUSE_SPLICE_WRITE | FUSE_SPLICE_MOVE | FUSE_SPLICE_READ | | 935 | FUSE_SPLICE_WRITE | FUSE_SPLICE_MOVE | FUSE_SPLICE_READ | |
939 | FUSE_FLOCK_LOCKS | FUSE_IOCTL_DIR | FUSE_AUTO_INVAL_DATA | | 936 | FUSE_FLOCK_LOCKS | FUSE_IOCTL_DIR | FUSE_AUTO_INVAL_DATA | |
940 | FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO | FUSE_ASYNC_DIO | | 937 | FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO | FUSE_ASYNC_DIO | |
941 | FUSE_WRITEBACK_CACHE; | 938 | FUSE_WRITEBACK_CACHE | FUSE_NO_OPEN_SUPPORT; |
942 | req->in.h.opcode = FUSE_INIT; | 939 | req->in.h.opcode = FUSE_INIT; |
943 | req->in.numargs = 1; | 940 | req->in.numargs = 1; |
944 | req->in.args[0].size = sizeof(*arg); | 941 | req->in.args[0].size = sizeof(*arg); |
diff --git a/fs/namei.c b/fs/namei.c index 985c6f368485..9eb787e5c167 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -2256,9 +2256,10 @@ done: | |||
2256 | goto out; | 2256 | goto out; |
2257 | } | 2257 | } |
2258 | path->dentry = dentry; | 2258 | path->dentry = dentry; |
2259 | path->mnt = mntget(nd->path.mnt); | 2259 | path->mnt = nd->path.mnt; |
2260 | if (should_follow_link(dentry, nd->flags & LOOKUP_FOLLOW)) | 2260 | if (should_follow_link(dentry, nd->flags & LOOKUP_FOLLOW)) |
2261 | return 1; | 2261 | return 1; |
2262 | mntget(path->mnt); | ||
2262 | follow_mount(path); | 2263 | follow_mount(path); |
2263 | error = 0; | 2264 | error = 0; |
2264 | out: | 2265 | out: |
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c index b56b1cc02718..944275c8f56d 100644 --- a/fs/nfsd/nfs4xdr.c +++ b/fs/nfsd/nfs4xdr.c | |||
@@ -2879,6 +2879,7 @@ again: | |||
2879 | * return the conflicting open: | 2879 | * return the conflicting open: |
2880 | */ | 2880 | */ |
2881 | if (conf->len) { | 2881 | if (conf->len) { |
2882 | kfree(conf->data); | ||
2882 | conf->len = 0; | 2883 | conf->len = 0; |
2883 | conf->data = NULL; | 2884 | conf->data = NULL; |
2884 | goto again; | 2885 | goto again; |
@@ -2891,6 +2892,7 @@ again: | |||
2891 | if (conf->len) { | 2892 | if (conf->len) { |
2892 | p = xdr_encode_opaque_fixed(p, &ld->ld_clientid, 8); | 2893 | p = xdr_encode_opaque_fixed(p, &ld->ld_clientid, 8); |
2893 | p = xdr_encode_opaque(p, conf->data, conf->len); | 2894 | p = xdr_encode_opaque(p, conf->data, conf->len); |
2895 | kfree(conf->data); | ||
2894 | } else { /* non - nfsv4 lock in conflict, no clientid nor owner */ | 2896 | } else { /* non - nfsv4 lock in conflict, no clientid nor owner */ |
2895 | p = xdr_encode_hyper(p, (u64)0); /* clientid */ | 2897 | p = xdr_encode_hyper(p, (u64)0); /* clientid */ |
2896 | *p++ = cpu_to_be32(0); /* length of owner name */ | 2898 | *p++ = cpu_to_be32(0); /* length of owner name */ |
@@ -2907,7 +2909,7 @@ nfsd4_encode_lock(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_lo | |||
2907 | nfserr = nfsd4_encode_stateid(xdr, &lock->lk_resp_stateid); | 2909 | nfserr = nfsd4_encode_stateid(xdr, &lock->lk_resp_stateid); |
2908 | else if (nfserr == nfserr_denied) | 2910 | else if (nfserr == nfserr_denied) |
2909 | nfserr = nfsd4_encode_lock_denied(xdr, &lock->lk_denied); | 2911 | nfserr = nfsd4_encode_lock_denied(xdr, &lock->lk_denied); |
2910 | kfree(lock->lk_denied.ld_owner.data); | 2912 | |
2911 | return nfserr; | 2913 | return nfserr; |
2912 | } | 2914 | } |
2913 | 2915 | ||
diff --git a/fs/xattr.c b/fs/xattr.c index 3377dff18404..c69e6d43a0d2 100644 --- a/fs/xattr.c +++ b/fs/xattr.c | |||
@@ -843,7 +843,7 @@ struct simple_xattr *simple_xattr_alloc(const void *value, size_t size) | |||
843 | 843 | ||
844 | /* wrap around? */ | 844 | /* wrap around? */ |
845 | len = sizeof(*new_xattr) + size; | 845 | len = sizeof(*new_xattr) + size; |
846 | if (len <= sizeof(*new_xattr)) | 846 | if (len < sizeof(*new_xattr)) |
847 | return NULL; | 847 | return NULL; |
848 | 848 | ||
849 | new_xattr = kmalloc(len, GFP_KERNEL); | 849 | new_xattr = kmalloc(len, GFP_KERNEL); |