v0.12
- mapping_set_error on failed writepage
- document correct debugfs mount point
- simplify layout/striping ioctls
- removed bad kmalloc in writepages
- use mempools for writeback allocations where appropriate (*)
- fixed a problem with capability, snap metadata writeback
- cleaned up f(data)sync wrt metadata writeback

v0.13
/- osd active during backlog generation
/- osdmap: allow explicit pg 'override' mappings
/- kclient: fixed vmalloc() usage (use for incoming msgs, GFP_NOFS)
/- http gw
/- kclient: fix sync read vs EOF
/- uclient: fix sync read vs EOF
/- [uk]client lseek SEEK_END
/- kclient msg pools
/  - don't reuse incoming cap message for revoke ack
/  - retry/requeue cap send on ENOMEM
/- mds: misc bugfixes for multiclient file access

v0.14
/- dir backpointer update on rename (fsck assist)
/- uclient bugs
/- msgr: unidirectional option (client->mon, client->mds, client->osd)
/- mon subscriptions to get osd, mds map updates.  single mon connection.
- many libceph/uclient fixes (version api, readahead, hadoop client improvements)
- deb packages fixed up

- kclient: retry alloc on ENOMEM when reading from connection?
- client authentication
- radosgw
- uclient: fix write vs max_size?

- mds: put migration vectors in mdsmap

- msgr
  - check protocols during connection handshake, not per-message?
- kclient msgr
  - allow msg to be revoked from connection (per-msg queue_seq, mutex)
  - and then kill maybe_dup_msg


bugs
- premature filejournal trimming?
- weird osd_lock contention during osd restart?
- ceph needs to detect monitor session drop

later
- authentication
- client reconnect after long eviction; and slow delayed reconnect
- ENOSPC
  - space reservation in ObjectStore, redeemed by Transactions?
  - reserved as PG goes active; reservation canceled when pg goes inactive
  - something similar during recovery
  - ?
- repair
- mds security enforcement
- client, user authentication
- cas
- osd failure declarations
- rename over old files should flush data, or revert back to old contents

mount.ceph
- should look at multiple A records, pass all IPs to kernel

rados
- usage accounting
- make rest interface superset of s3?
- perl swig wrapper
- 'rados call foo.bar'?
- merge pgs
- destroy pg_pools
- autosize pg_pools?
- security

repair
- namespace reconstruction tool
- repair pg (rebuild log)  (online or offline?  ./cosd --repair_pg 1.ef?)
- repair file ioctl?
- are we concerned about
  - scrubbing
  - reconstruction after loss of subset of cdirs
  - reconstruction after loss of md log
- data object 
  - path backpointers?
  - parent dir pointer?
- mds scrubbing

kclient
- fix up ESTALE handling
- allow struct ceph_msg revoke from a connection
- don't retry on ENOMEM on non-nofail requests in kick_requests
- make cap import/export more efficient?
- flock, fnctl locks
- ACLs
- should we try to ref CAP_PIN on special inodes that are open?  
- fix readdir vs fragment race by keeping a separate frag pos, and ignoring dentries below it
- try to reconnect after being disconnected from the mds?
- inotify for updates from other clients?

vfs issues
- real_lookup() race:
  1- hash lookup find no dentry
  2- real_lookup() takes dir i_mutex, but then finds a dentry
  3- drops mutex, then calld d_revalidate.  if that fails, we return ENOENT (instead of looping?)
- vfs_rename_dir()
- a getattr mask would be really nice

filestore
- make min sync interval self-tuning (ala xfs, ext3?)
- get file csum?

btrfs
- clone compressed inline extents
- ioctl to pull out data csum?

osd
- what to do with lost objects.. continue peering?
- segregate backlog from log ondisk?
- preserve pg logs on disk for longer period
- make scrub interruptible
- optionally separate osd interfaces (ips) for clients and osds (replication, peering, etc.)
- pg repair
- pg split should be a work queue
- optimize remove wrt recovery pushes?

uclient
- clean up check_caps to more closely mirror kclient logic
- readdir from cache
- fix readdir vs fragment race by keeping a separate frag pos, and ignoring dentries below it
- hadoop: clean up assert usage

mds
- pass issued, wanted into eval(lock) when eval() already has it?  (and otherwise optimize eval paths..)
- add an up:shadow mode?
  - tail the mds log as it is written
  - periodically check head so that we trim, too
- handle slow client reconnect (i.e. after mds has gone active)
- anchor_destroy needs to xlock linklock.. which means it needs a Mutation wrapper?
  - ... when it gets a caller.. someday..
- add FILE_CAP_EXTEND capability bit
- dir fragment
  - maybe just take dftlock for now, to keep it simple.
- dir merge
- snap
  - hard link backpointers
    - anchor source dir
    - build snaprealm for any hardlinked file
    - include snaps for all (primary+remote) parents
  - how do we properly clean up inodes when doing a snap purge?
    - when they are mid-recover?  see 136470cf7ca876febf68a2b0610fa3bb77ad3532
  - what if a recovery is queued, or in progress, and the inode is then cowed?  can that happen?  
  - proper handling of cache expire messages during rejoin phase?
    -> i think cache expires are fine; the rejoin_ack handler just has to behave if rejoining items go missing

- clustered
  - on replay, but dirty scatter replicas on lists so that they get flushed?  or does rejoin handle that?
  - linkage vs cdentry replicas and remote rename....
  - rename: importing inode... also journal imported client map?

mon
- mds injectargs N should take mds# or id.  * should bcast to standy mds's.
- paxos need to clean up old states.
  - default: simple max of (state count, min age), so that we have at least N hours of history, say?
  - osd map: trim only old maps < oldest "in" osd up_from

osdmon
- monitor needs to monitor some osds...

pgmon
/- include osd vector with pg state
  - check for orphan pgs
- monitor pg states, notify on out?
- watch osd utilization; adjust overload in cluster map

crush
- allow forcefeed for more complicated rule structures.  (e.g. make force_stack a list< set<int> >)

simplemessenger
- close idle connections?

objectcacher
- read locks?
- maintain more explicit inode grouping instead of wonky hashes

cas
- chunking.  see TTTD in
   ESHGHI, K.
   A framework for analyzing and improving content-based chunking algorithms.
   Tech. Rep. HPL-2005-30(R.1), Hewlett Packard Laboratories, Palo Alto, 2005. 

s3
 - handle gracefully location related requests
 - logging control (?)
 - parse date/time better
 - upload using post
 - torrent
 - handle gracefully PUT/GET requestPayment
