aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-08-26ceph: ceph_mdsc_build_path() returns an ERR_PTRDan Carpenter1-0/+4
ceph_mdsc_build_path() returns an ERR_PTR but this code is set up to handle NULL returns. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-25ceph: Fix warningsAlan Cox1-5/+9
Just scrubbing some warnings so I can see real problem ones in the build noise. For 32bit we need to coax gcc politely into believing we really honestly intend to the casts. Using (u64)(unsigned long) means we cast from a pointer to a type of the right size and then extend it. This stops the warning spew. Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-25ceph: ceph_get_inode() returns an ERR_PTRDan Carpenter1-2/+2
ceph_get_inode() returns an ERR_PTR and it doesn't return a NULL. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-24ceph: initialize fields on new dentry_infosSage Weil1-1/+1
Signed-off-by: Sage Weil <[email protected]>
2010-08-24ceph: maintain i_head_snapc when any caps are dirty, not just for dataSage Weil4-7/+26
We used to use i_head_snapc to keep track of which snapc the current epoch of dirty data was dirtied under. It is used by queue_cap_snap to set up the cap_snap. However, since we queue cap snaps for any dirty caps, not just for dirty file data, we need to keep a valid i_head_snapc anytime we have dirty|flushing caps. This fixes a NULL pointer deref in queue_cap_snap when writing back dirty caps without data (e.g., snaptest-authwb.sh). Signed-off-by: Sage Weil <[email protected]>
2010-08-22ceph: fix osd request lru adjustment when sending requestHenry C Chang1-1/+1
Fix argument order. We want to move the item to the end of the list, not change the position of the head. Signed-off-by: Henry C Chang <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-22ceph: don't improperly set dir complete when holding EXCL capSage Weil1-0/+1
If we hold the EXCL cap, we cannot trust the dir stats from the MDS (num files, subdirs) and must not incorrectly conclude that the directory is empty. If we do, we get can bad results from lookup (bad ENOENT) and bad readdir results. Signed-off-by: Sage Weil <[email protected]>
2010-08-22mm: exporting account_page_dirtyMichael Rubin2-7/+2
This allows code outside of the mm core to safely manipulate page state and not worry about the other accounting. Not using these routines means that some code will lose track of the accounting and we get bugs. This has happened once already. Signed-off-by: Michael Rubin <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-22ceph: direct requests in snapped namespace based on nonsnap parentSage Weil1-2/+24
When making a request in the virtual snapdir or a snapped portion of the namespace, we should choose the MDS based on the first nonsnap parent (and its caps). If that is not the best place, we will get forward hints to find the right MDS in the cluster. This fixes ESTALE errors when using the .snap directory and namespace with multiple MDSs. Signed-off-by: Sage Weil <[email protected]>
2010-08-22ceph: queue cap snap writeback for realm children on snap updateSage Weil1-23/+37
When a realm is updated, we need to queue writeback on inodes in that realm _and_ its children. Otherwise, if the inode gets cowed on the server, we can get a hang later due to out-of-sync cap/snap state. Signed-off-by: Sage Weil <[email protected]>
2010-08-22ceph: include dirty xattrs state in snapped capsSage Weil4-11/+23
When we snapshot dirty metadata that needs to be written back to the MDS, include dirty xattr metadata. Make the capsnap reference the encoded xattr blob so that it will be written back in the FLUSHSNAP op. Also fix the capsnap creation guard to include dirty auth or file bits, not just tests specific to dirty file data or file writes in progress (this fixes auth metadata writeback). Signed-off-by: Sage Weil <[email protected]>
2010-08-22ceph: fix xattr cap writebackSage Weil1-5/+5
We should include the xattr metadata blob in the cap update message any time we are flushing dirty state, NOT just when we are also dropping the cap. This fixes async xattr writeback. Also, clean up the code slightly to avoid duplicating the bit test. Signed-off-by: Sage Weil <[email protected]>
2010-08-22ceph: fix multiple mds session shutdownSage Weil2-34/+37
The use of a completion when waiting for session shutdown during umount is inappropriate, given the complexity of the condition. For multiple MDS's, this resulted in the umount thread spinning, often preventing the session close message from being processed in some cases. Switch to a waitqueue and defined a condition helper. This cleans things up nicely. Signed-off-by: Sage Weil <[email protected]>
2010-08-10ceph: generalize mon requests, add pool op supportYehuda Sadeh2-17/+158
Generalize the current statfs synchronous requests, and support pool_ops. Signed-off-by: Yehuda Sadeh <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-05ceph: only queue async writeback on cap revocation if there is dirty dataSage Weil1-1/+1
Normally, if the Fb cap bit is being revoked, we queue an async writeback. If there is no dirty data but we still hold the cap, this leaves the client sitting around doing nothing until the cap timeouts expire and the cap is released on its own (as it would have been without the revocation). Instead, only queue writeback if the bit is actually used (i.e., we have dirty data). If not, we can reply to the revocation immediately. Signed-off-by: Sage Weil <[email protected]>
2010-08-03ceph: do not ignore osd_idle_ttl mount optionSage Weil1-0/+3
Actually apply the mount option to the mount_args struct. Signed-off-by: Sage Weil <[email protected]>
2010-08-03ceph: constify dentry_operationsSage Weil2-5/+5
This makes checkpatch happy. Signed-off-by: Sage Weil <[email protected]>
2010-08-03ceph: whitespace cleanupSage Weil7-24/+31
Signed-off-by: Sage Weil <[email protected]>
2010-08-02ceph: add flock/fcntl lock supportGreg Farnum5-2/+284
Implement flock inode operation to support advisory file locking. All lock/unlock operations are synchronous with the MDS. Lock state is sent when reconnecting to a recovering MDS to restore the shared lock state. Signed-off-by: Greg Farnum <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-02ceph: define on-wire types, constants for file locking supportGreg Farnum2-2/+36
Define the MDS operations and data types for doing file advisory locking with the MDS. Signed-off-by: Greg Farnum <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-02ceph: add CEPH_FEATURE_FLOCK to the supported feature bitsGreg Farnum1-1/+1
This informs the server that we will accept v2 client_caps format and v2 client_reconnect format messages. Signed-off-by: Greg Farnum <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-02ceph: support v2 reconnect encodingSage Weil2-13/+50
Encode either old or v2 encoding of client_reconnect message, depending on whether the peer has the FLOCK feature bit. Signed-off-by: Sage Weil <[email protected]>
2010-08-02ceph: support v2 client_caps encodingSage Weil1-2/+19
Add support for v2 encoding of MClientCaps, which includes a flock blob. Signed-off-by: Sage Weil <[email protected]>
2010-08-02ceph: move AES iv definition to shared headerSage Weil2-1/+3
Signed-off-by: Sage Weil <[email protected]>
2010-08-02ceph: fix decoding of pool snap infoSage Weil1-4/+26
The pool info contains a vector for snap_info_t, not snap ids. This fixes the broken decoding, which would declare teh update corrupt when a pool snapshot was created. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: make ->sync_fs not wait if wait==0Sage Weil1-4/+13
The ->sync_fs() super op only needs to wait if wait is true. Otherwise, just get some dirty cap writeback started. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: warn on missing snap realmSage Weil1-0/+1
Well, this Shouldn't Happen, so it would be helpful to know the caller when it does. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: print useful error message when crush rule not foundSage Weil1-2/+3
Include the crush_ruleset in the error message. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: use %pU to print uuid (fsid)Sage Weil3-15/+8
Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: sync header defs with server codeSage Weil3-0/+11
Define ROLLBACK op, IFLOCK inode lock (for advisory file locking). Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: clean up header guardsSage Weil8-16/+16
Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: strip misleading/obsolete version, feature infoSage Weil1-26/+4
Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: specify supported features in super.hSage Weil2-3/+9
Specify the supported/required feature bits in super.h client code instead of using the definitions from the shared kernel/userspace headers (which will go away shortly). Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: clean up fsid mount optionSage Weil1-13/+39
Specify the fsid mount option in hex, not via the major/minor u64 hackery we had before. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: remove unused 'monport' mount optionSage Weil1-2/+0
Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: handle ESTALE properly; on receipt send to authority if it wasn'tGreg Farnum2-8/+35
Signed-off-by: Greg Farnum <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: add ceph_get_cap_for_mds function.Greg Farnum2-0/+12
Signed-off-by: Greg Farnum <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: connect to export targets on cap exportSage Weil3-2/+23
When we get a cap EXPORT message, make sure we are connected to all export targets to ensure we can handle the matching IMPORT. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: connect to export targets if mds is laggySage Weil1-0/+15
If an MDS we are talking to may have failed, we need to open sessions to its potential export targets to ensure that any in-progress migration that may have involved some of our caps is properly handled. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: introduce helper to connect to mds export targetsSage Weil1-0/+37
There are a few cases where we need to open sessions with a given mds's potential export targets. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: only set num_pages in calc_layoutSage Weil1-3/+0
Setting it elsewhere is unnecessary and more fragile. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: do caps accounting per mds_clientYehuda Sadeh5-115/+131
Caps related accounting is now being done per mds client instead of just being global. This prepares ground work for a later revision of the caps preallocated reservation list. Signed-off-by: Yehuda Sadeh <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: track laggy state of mds from mdsmapSage Weil3-2/+16
Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: code cleanupYehuda Sadeh13-49/+46
Mainly fixing minor issues reported by sparse. Signed-off-by: Yehuda Sadeh <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: skip if no auth cap in flush_snapsSage Weil1-7/+12
If we have a capsnap but no auth cap (e.g. because it is migrating to another mds), bail out and do nothing for now. Do NOT remove the capsnap from the flush list. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: simplify caps revocation, fix for multimdsSage Weil1-12/+18
The caps revocation should either initiate writeback, invalidateion, or call check_caps to ack or do the dirty work. The primary question is whether we can get away with only checking the auth cap or whether all caps need to be checked. The old code was doing...something else. At the very least, revocations from non-auth MDSs could break by triggering the "check auth cap only" case. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: simplify add_cap_releasesSage Weil1-16/+19
No functional change, aside from more useful debug output. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: drop unused argumentSage Weil3-9/+6
Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: perform lazy reads when file mode and caps permitSage Weil4-13/+22
If the file mode is marked as "lazy," perform cached/buffered reads when the caps permit it. Adjust the rdcache_gen and invalidation logic accordingly so that we manage our cache based on the FILE_CACHE -or- FILE_LAZYIO cap bits. Signed-off-by: Sage Weil <[email protected]>
2010-08-01ceph: perform lazy writes when file mode and caps permitSage Weil2-8/+11
If we have marked a file as "lazy" (using the ceph ioctl), perform buffered writes when the MDS caps allow it. Signed-off-by: Sage Weil <[email protected]>